请问各位,我在数据库中存在一个表,结构如下:   mc           bm
  正常入库      1
  异常入库      2
  正常入库失败  3问题是,想实现在DATAGRID中直接根据bm的值,显示相应的mc中的内容,例如,在datagrid中某一记录bm字段的值是1,而显示在datagrid中的是和1相对应的"正常入库"。我想在页面一加载,出现datagrid的时候就实现这个功能,请问该怎么写呢?(我要的不是在EDITCOMAND事件里一点“编辑”按钮才能出下拉框的代码,那个我知道怎么写)

解决方案 »

  1.   

    给你两个建议:
    1,在SQL语句中将所有的值转换!这一点应该比较简单吧!when ... case 或 if等!
    2,DataGrid在邦定的时候有三个事件。邦定前,邦定时和邦定后。在你需要的事件中写你想要的功能!
    具体方法请自己实现!
      

  2.   

    http://aspnet.4guysfromrolla.com/demos/dgExample12.aspx
      

  3.   

    这个不行啊,我的意思是:在数据库中,“出库方式”这个字段存储的是bm编码,如1,2,3;但是我想在datagrid里根据存储的bm编码显示相对应的"正常入库"、"异常入库"等,这个功能,想在datagrid绑定时实现,请高手明示啊。
      

  4.   

    (原创)怎么在绑定后动态改变DataGrid中的内容 
    在应用中,很多时候需要在绑定以后去修改DataGrid的呈现,比如
    (1)当数据符合一定的条件需要修改它的呈现方式
    (2)将数据库中的逻辑值(0,1)变成男女来呈现等等
    大致有2种方法来实现上述操作
    (1)在ItemDataBound中修改值
    (2)在绑定的时候用一个函数进行过虑
    同样,数据库按照 http://blog.csdn.net/lovecherry/archive/2005/02/25/301441.aspx
    我们来实现以下2个功能
    (1)在ItemDataBound中把年龄小于30的人的一行底色修改为粉红色
    代码如下
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)
       {
        if(Convert.ToInt16(DataBinder.Eval(e.Item.DataItem,"iAge"))<30)e.Item.BackColor=Color.Pink;
       }
      }
    当然需要注册事件
    this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
    (2)把姓名为“朱晔”的人,用加重显示
    前台代码
    <%#DataBinder.Eval(Container.DataItem,"vName") %>
    修改为
    <%# myfunc(DataBinder.Eval(Container.DataItem,"vName")) %>
    后台代码
    protected string myfunc(object s)
      {
       string _s;
       if(s.ToString()=="朱晔")
        _s="<b>"+s.ToString()+"</b>";
       else
        _s=s.ToString();
       return _s;
      }以上2种功能也就是我上面说的大致有2种方法来实现上述操作
    就这么简单。
    对于其他的一些相关扩展就不细说了
    比如根据一个值来改变一些控件的属性:
    如果控件是模板列中的可以通过((控件类型)e.Item.FindControl(id)).属性=值 来动态设定;
    如果控件不是模板列中的可以通过((控件类型)e.Item.Controls[索引号]).属性=值 来动态设定
    还比如根据一个列的值来写其他列的统计值,都一样的
    在ItemDataBound事件方法中进行操作,因为这个时候数据绑定了
      

  5.   

    同时参考
    http://dotnet.aspx.cc/ShowDetail.aspx?id=F73EF6AD-6878-4748-B963-5181252E5AED