मैं एक ऐसा नियंत्रण बनाना चाहता हूं जो ग्रिडव्यू के भीतर उपयोग किए जाने वाले बाउंडफिल्ड को बढ़ाता है। मैं जो करना चाहता हूं वह हाइलाइटफिल्ड नाम की एक और संपत्ति प्रदान करता है जो डेटाफ़ील्ड संपत्ति के समान होगा, जिसमें मैं इसे डेटा कॉलम नाम देना चाहता हूं। यह देखते हुए कि डेटा कॉलम यह देखेगा कि मान सही है या गलत है और दी गई पंक्ति पर दिए गए कॉलम के भीतर दिए गए टेक्स्ट को हाइलाइट करें।एक विस्तार (एएसपी.नेट) बाउंडफ़िल्ल्ड
कुछ छद्म-कोड है कि अगर नहीं है भावना:
<asp:GridView id="grid">
<Columns>
<asp:BoundField DataField="Name" />
<cc:HighlightField DataField="Name" HighlightField="IsHighlighted" />
</Columns>
</asp:GridView>
और फिर DataBind या कुछ और के भीतर:
if(this row's IsHighlighted value is true)
set the CssClass of this datacell = "highlighted"
(or wrap a span tag around the text)
रवीश मुझे सही दिशा में इशारा किया, यहाँ मैं क्या समाप्त हो गया है अप के साथ:
public class HighlightedBoundField : BoundField
{
public string HighlightField
{
get { return ViewState["HighlightField"].ToString(); }
set
{
ViewState["HighlightField"] = value;
OnFieldChanged();
}
}
public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex)
{
base.InitializeCell(cell, cellType, rowState, rowIndex);
bool isDataRowAndIsHighlightFieldSpecified = cellType == DataControlCellType.DataCell && !string.IsNullOrEmpty(HighlightField);
if (isDataRowAndIsHighlightFieldSpecified)
{
cell.DataBinding += new EventHandler(cell_DataBinding);
}
}
void cell_DataBinding(object sender, EventArgs e)
{
TableCell cell = (TableCell)sender;
object dataItem = DataBinder.GetDataItem(cell.NamingContainer);
cell.Text = DataBinder.GetPropertyValue(dataItem, DataField).ToString();
bool highlightThisCellsText = Convert.ToBoolean(DataBinder.GetPropertyValue(dataItem, HighlightField));
if (highlightThisCellsText)
{
cell.CssClass += " highlight";
}
}
}
मुझे यह पसंद है, मैं इसे एक घुमाव दूंगा और वापस – rball
दो-तरफा डाटाबेसिंग करने का कोई तरीका नहीं है? क्या आप "हाइलाइटलाइट" नामक अपने हाइलाइटबाउंडफिल्ड पर बूलियन प्रॉपर्टी बना सकते हैं और ऐसा कुछ कर सकते हैं:' /> –
Chris