方法是半百度来的,但是这个方法很难再网络上找到,大部分网站搜索出来都有很多问题.
首先鄙视下Gridview.FindControl("Id")方法,真的很难用啊! (我知道必须在行里面找{e.Row.FindControl("Id")});
没有详细的研究,但是测试了半天了,总算出来了.
方案1:
Gridview的RowCreated事件绑定数据!
不能使用Gridview的RowCreated事件,会报错说 数据绑定必须在数据绑定事件中进行!
方案2:
Dropdownlist的DataBinding事件绑定数据!
万恶的Gridview.FindControl,和DataRow.FindControl都无法找到编辑状态的Dropdownlist,只能找到浏览状态的Label
方案3:
Gridview的RowDataBound事件绑定数据!
绝对不行!在这个事件以前,Dropdownlist要被赋Gridview当前编辑项的值,但是Dropdownlist这个时候是空的,报错找不到SelectedValue
总结上面方法 花了大半天时间....哎!!!
下面是研究的方法(方法算是半百度)
(把GridView的列转换为)
为 Dropdownlist 指定 DataTextField="数据源中的列" DataValueField="数据源中的列" DataSource="<%# 定义在.cs文件中的DataSet DataTable数据源 可以是方法 %>
例子:
Ok 解决以上所有的问题