GetUsersMSGDataGrid_ItemDataBound方法执行问题,没有显示想要的文本
新手!
在datagrid中有用户权限列(模板列),值为0,1,想让其显示为普通用户和管理员。
定义了如下方法:
- C# code
private void GetUsersMSGDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //string tmp = e.Item.Cells[5].Text; for(int i=0;i<GetUsersMSGDataGrid.Items.Count;i++) { string tmp = GetUsersMSGDataGrid.Items[i].Cells[5].Text; if(GetUsersMSGDataGrid.Items[i].Cells[5].Text=="0") GetUsersMSGDataGrid.Items[i].Cells[5].Text = "普通用户"; else GetUsersMSGDataGrid.Items[i].Cells[5].Text = "管理员"; } }
结果:全都变成了管理员。
设断点看了下:
tmp=“权限”————————————————页眉
tmp=null——————————————————以下都是“null”
显示也就都成了管理员。
注释掉GetUsersMSGDataGrid_ItemDataBound方法,0,1值和数据库中一致。
前台部分:
- HTML code
<asp:TemplateColumn HeaderText="权限"> <ItemTemplate> <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserType")%>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList runat="server" SelectedIndex='<%# GetUserTypeIndex(DataBinder.Eval(Container.DataItem, "usertype").ToString()) %>' id="edit_usertype"> <asp:ListItem Value="0">普通用户</asp:ListItem> <asp:ListItem Value="1">管理员</asp:ListItem> </asp:DropDownList> </EditItemTemplate>
为什么是null?
问题出在哪了?各位先贤烦请解惑,拜谢!
[解决办法]
C#是区分大小写的哦。
还有就是直接在eval里可直接判断<%# IIf(Eval("UserType").ToString() = "0", "普通用户", "管理员")%>
未经测试,凭印象。:)