我正在尝试将一系列DropDownLists添加到我的GridView控件中。问题是我不知道在设计时我的DataSource中有多少列,因此我尝试使用AutoGenerateColumns = true而不指定列模板。因此,我将DropDownList控件添加到页脚的方式是在GridView的DataBound事件上动态编写代码。
除了我想在用户单击按钮时对每个DropDownLists的SelectedItem执行某些操作时,此工作正常。这些动态添加的控件似乎不再存在于用户点击按钮的帖子后面,我相信问题是因为我没有在DropDownList控件上指定runat =“server”标签。
我是否有不同的方法将这些下拉列表添加到FooterTemplate而不指定所有列,以便当用户单击页面上的按钮时我可以访问其SelectedItems?
答案 0 :(得分:2)
你部分正确 - 在回发后不再存在动态添加的控件。在运行DataBound事件之前,它们不会重新添加。问题是数据绑定事件在控制事件之后发生,即 按钮的Click事件之后。因此,在处理click事件的页面生命周期中,尚未重新创建那些控件。
Here's a related question which might have some useful information
答案 1 :(得分:0)
您需要创建一个Addhandler:
dim dropdownlistname as new Dropdownlist
Addhandler dropdownlistname.selected_indexchanged,AddressOf dropdownlistname_SelectedIndexChanged
然后你需要创建一个sub,如下所示:
Protected Sub dropdownlistname_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddldept.SelectedIndexChanged
'Insert Code here
End sub
这样做是因为它创建了一个Event并声明了一个Address来代表该事件。您应该能够在此事件中编写任何代码。