Ich habe eine DataTable
, die 3 Felder enthält: ACount
, BCount
und DCount
. Wenn ACount < 0
dann muss ich "S" in einer der Spalten der GridView
anzeigen. Wenn ACount > 0
dann muss ich "D" in dieser Spalte (in Etikett) anzeigen. Das Gleiche gilt für BCount
und DCount
. Wie kann ich diese bedingte Überprüfung in der RowDataBound
Funktion durchführen?RowDataBound Funktion von GridView
2
A
Antwort
5
Die Gridview OnRowDataBound
Veranstaltung ist dein Freund:
<asp:gridview
id="myGrid"
onrowdatabound="MyGrid_RowDataBound"
runat="server">
<columns>
<asp:boundfield headertext="ACount" datafield="ACount" />
<asp:boundfield headertext="BCount" datafield="BCount" />
<asp:boundfield headertext="DCount" datafield="DCount" />
<asp:templatefield headertext="Status">
<itemtemplate>
<asp:label id="aCount" runat="server" />
<asp:label id="bCount" runat="server" />
<asp:label id="dCount" runat="server" />
</itemtemplate>
</asp:templatefield>
</columns>
</asp:gridview>
// Put this in your code behind or <script runat="server"> block
protected void MyGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType != DataControlRowType.DataRow)
{
return;
}
Label a = (Label)e.Row.FindControl("aCount");
Label b = (Label)e.Row.FindControl("bCount");
Label d = (Label)e.Row.FindControl("dCount");
int ac = (int) ((DataRowView) e.Row.DataItem)["ACount"];
int bc = (int) ((DataRowView) e.Row.DataItem)["BCount"];
int dc = (int) ((DataRowView) e.Row.DataItem)["DCount"];
a.Text = ac < 0 ? "S" : "D";
b.Text = bc < 0 ? "S" : "D";
d.Text = dc < 0 ? "S" : "D";
}
Ich bin nicht sicher, wo Sie das ‚S‘ und ‚D Zeichen gemacht wollen, aber Sie sollten Ihre Bedürfnisse verfeinern können, gerecht zu werden.
2
Das hat für mich funktioniert .... Ich muss etwas falsch verstehen, also musste ich abgewinkelte Klammern mit [oder] für den ASP ersetzen, also sei dir dessen bewusst.
[asp:TemplateField runat="server" HeaderText="Header"]
[ItemTemplate]
[asp:Label ID="theLabel" runat="server" Text='[%# Eval("DataSource").ToString()
%]'][/asp:Label]
[/ItemTemplate]
[/asp:TemplateField]
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label newLabel = (Label)e.Row.FindControl("theLabel");
if (newLabel.Text.Length > 20) //20 is cutoff length
{
newLabel.Text = lbl.Text.Substring(0, 20);
newLabel.Text += "...";
}
}
}
Verwandte Themen
- 1. RowDataBound von einer anderen Funktion aufrufen
- 2. GridView, RowDataBound (Objekt Absender, GridViewRowEventArgs e)
- 3. Um das commandargument in rowdatabound Ereignis in gridview zu erhalten
- 4. ASP.NET verschachtelt GridView, DataItem gibt null in RowDataBound Ereignis der untergeordneten GridView
- 5. CSS-Klasse in RowDataBound hinzufügen
- 6. AddHandler feuert nicht in rowdatabound
- 7. Format Spalte in einer Vorlage mit rowdatabound
- 8. Wert von einer Zelle aus einer Gridview auf RowDataBound-Ereignis erhalten
- 9. jQuery click Funktion auf gridview tr
- 10. Gridview Filtering eingebaute Funktion?
- 11. Wie in einer Gridview auf RowDataBound Ereignis den Wert eines eval() Feld ändern
- 12. GridView in asp.net
- 13. Eval und ItemDataBound oder RowDataBound-Ereignis zum Anzeigen von Daten, welche ist besser?
- 14. Benutzerdefinierte Gridview - Bindung mit nicht-statischen Funktion
- 15. JavaScript für GridView-Reihe TemplateFields
- 16. ASP.NET GridView ItemTemplate
- 17. Ersetze eine Gridview-Zeile beim Rendern
- 18. Hinzufügen von Gridview SetOnItemClickListener
- 19. Zeilenhöhe von gridview erhalten
- 20. Scroll-Versatz von GridView
- 21. Validieren Sie eine Gridview
- 22. Hinzufügen Gridview Row AFTER Header
- 23. asp.net GridView IF leer Nachricht anzeigen
- 24. kann kein Steuerelement in meinem Gridview finden
- 25. gridview Wert Ihrer in asp.net
- 26. Erhalten Kopftext von Gridview Zelle
- 27. Hinzufügen von Zellen in GridView
- 28. erhalten Daten von in Gridview
- 29. Anzeigen von Bildern in Gridview
- 30. ID von gridview in Etikett
Welche Version von .NET Framework verwenden Sie und welches Steuerelement möchten Sie verwenden, DataGridView? –