小弟初学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属性就可以了.)
解决方案 »
- ASP.NET网站发布时如何带上SQL SERVER数据库
- 求救,。。。
- 求助,请问VIEWSTATE的值对搜索引擎影响大吗,如果大,怎么解决呢
- cuteeditor的表格插入问题,急!!!分不多了,好心高手进!
- 紧急求救 asp.net2.0 点击所有的按钮都没反应,怎么回事,顶者有分
- 做master页面的时候,主页上的banner是怎么设置合适呢
- ***** 让我十分郁闷 的小问题? 创建asp.net 失败!!! (在线等答案)
- 怎样用脚本语言javascript获得treeview中选定节点的值
- AspNetMenu菜单在部分电脑上挡住下面的iframe框架,部分电脑没有挡住,是怎么回事呀!
- 还是那个问题,有没有人告诉我确切答案??(MSDE数据库连接问题)
- 水晶报表导出excel时有空行(特急)
- frame框架内判断用户是否处于活动状态(急,在线等)
然后直接绑定
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