DataGrid的编辑模版中的DropDownList绑定

    在应用DataGrid的编辑模版列的时候,要用到DropDownList控件,用来显示所有的类别以便在编辑时可以修改类别,TextBox控件可以直接设置Text='<%# DataBinder.Eval(Container.DataItem,"type") %>,这样编辑模版列中的TextBox控件就可以绑定当前的数据了,但是DropDownList不能这么简单,开始的时候我想再点击编辑按钮时绑定DropDownList,即在EditCommand事件中绑定,
                DataSet ds = new  DataSet();
                DataInitial di
= new  DataInitial();
                ds
= di.GetArticleType(Convert.ToInt32(NewsType.Btype), 0 );
                DropDownList ddlst
= (DropDownList)e.Item.FindControl( " ddl_Btype " );
                ddlst.DataSource
= ds;
                ddlst.DataBind();
但在这ddlst得不到任何值,后来网上一搜说要在ItemDataBound 事件里绑定,ItemDataBound 事件里的代码如下:
             if  (e.Item.ItemType == ListItemType.EditItem) // 确定是编辑项
            {
                DataSet ds
= new  DataSet();
                DataInitial di
= new  DataInitial();
                ds
= di.GetArticleType(Convert.ToInt32(NewsType.Btype), 0 );
                DropDownList ddlst
= (DropDownList)e.Item.FindControl( " ddl_Btype " );
                ddlst.DataSource
= ds;
                ddlst.DataBind();
                ddlst.SelectedValue
= btypeid.ToString();
            }
这样DropDownList就得到值了,后来MSDN上查看ItemDataBound事件:“当项被数据绑定到 DataGrid 控件后,将引发 ItemDataBound 事件。此事件为您提供了在客户端显示数据项之前访问该数据项的最后机会。当引发此事件后,该数据项将被设为空,并且不再可用 ”。上面这段即为MSDN上的解释,我们在程序中无论点击编辑,更新或者删除时都会调用一下数据绑定方法,ItemDataBound 事件是对数据项最后访问机会,所以要在此时绑定我们的DropDownList,如果在DataGrid绑定完后 在绑定DropDownList会无效。

转载于:https://www.cnblogs.com/tiu/archive/2006/12/09/587013.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值