小弟初学asp.net,遇到这样的问题:sql="select name,sex... from table1";由于table1里字段sex(性别)存储的是代码1和2(1代表男,2代表女)希望显示在DBGrid里,sex列显示的是男和女,而不是1和2,该在DBGrid的ItemDataBound事件写还是在PreRender,ItemCreated事件? (以前用的是Delphi,在Delphi里,运行时直接变成Field的DisplayLable属性就可以了.)
搞好了,直接在ItemDataBound事件写switch(e.Item.Cells[1].Text) { case "1":e.Item.Cells[1].Text="系统代码";break; case "2":e.Item.Cells[1].Text="用户代码";break; default:break; }就行了!
这样写的话: switch(e.Item.Cells[1].Text) { case "1":e.Item.Cells[1].Text="系统代码";break; case "2":e.Item.Cells[1].Text="用户代码";break; default:break; } 把DBGrid的标题行也改了改在这样 if(e.Item.ItemIndex>0){ switch(e.Item.Cells[1].Text) { case "1":e.Item.Cells[1].Text="系统代码";break; case "2":e.Item.Cells[1].Text="用户代码";break; default:break; } }为什么不行?
晕倒MSDN里索引DBGrid时,没有找到示范代码,看了Nekchan的代码,不明白 if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) 这一句,在MSDN里找ListItemType,结果找到了范例.
然后直接绑定
2 模版列绑定的时候用
<%# DataBinder.Eval(DataBind.DataItem, "sex").ToString() == "1" ? "男" : "女" %>
3 也可以在ItemDataBound等事件中修改
{
case "1":e.Item.Cells[1].Text="系统代码";break;
case "2":e.Item.Cells[1].Text="用户代码";break;
default:break;
}就行了!
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 104; LEFT: 48px; POSITION: absolute; TOP: 200px"
runat="server" AutoGenerateColumns="False" Width="216px">
<Columns>
<asp:BoundColumn DataField="Sex" HeaderText="Sex"></asp:BoundColumn>
</Columns>
</asp:DataGrid>cs:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
if (e.Item.Cells[0].Text == "1")
{
e.Item.Cells[0].Text = "男";
}
else
{
e.Item.Cells[0].Text = "女";
}
}
}
switch(e.Item.Cells[1].Text)
{
case "1":e.Item.Cells[1].Text="系统代码";break;
case "2":e.Item.Cells[1].Text="用户代码";break;
default:break;
}
把DBGrid的标题行也改了改在这样
if(e.Item.ItemIndex>0){
switch(e.Item.Cells[1].Text)
{
case "1":e.Item.Cells[1].Text="系统代码";break;
case "2":e.Item.Cells[1].Text="用户代码";break;
default:break;
}
}为什么不行?
晕倒MSDN里索引DBGrid时,没有找到示范代码,看了Nekchan的代码,不明白
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
这一句,在MSDN里找ListItemType,结果找到了范例.
http://community.csdn.net/Expert/topic/5554/5554712.xml?temp=1.519412E-02