我有一个包含3个字段的DataTable:ACount,BCount和DCount.如果ACount< 0然后我需要在GridView的一列中显示'S'.如果ACount> 0然后我必须在该列中显示“D”(在标签中).与BCount和DCount相同.如何在RowDataBound函数中执行此条件检查?
解决方法
GridView
OnRowDataBound
活动是您的朋友:
<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"; }
我不确定你想要’S’和’D字符呈现的位置,但你应该能够重新设置以满足你的需求.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。