C# 动态将页脚添加到ASP.NET GridView

C# 动态将页脚添加到ASP.NET GridView,c#,asp.net,gridview,footer,C#,Asp.net,Gridview,Footer,我正在尝试向GridView控件添加一行页脚的DropDownList。问题是,我不知道在设计时数据源中将有多少列,因此我尝试使用AutoGenerateColumns=true,而不是指定列模板。因此,我将DropDownList控件添加到页脚的方式是在GridView的DataBound事件上动态地编写代码 这很好用,只是当用户单击按钮时,我想对每个下拉列表的SelectedItem进行一些处理。这些动态添加的控件似乎不再存在于用户单击按钮的背面,我相信问题在于我没有在DropDownLis

我正在尝试向GridView控件添加一行页脚的DropDownList。问题是,我不知道在设计时数据源中将有多少列,因此我尝试使用AutoGenerateColumns=true,而不是指定列模板。因此,我将DropDownList控件添加到页脚的方式是在GridView的DataBound事件上动态地编写代码

这很好用,只是当用户单击按钮时,我想对每个下拉列表的SelectedItem进行一些处理。这些动态添加的控件似乎不再存在于用户单击按钮的背面,我相信问题在于我没有在DropDownList控件上指定runat=“server”标记

有没有其他方法可以在不指定所有列的情况下将这些下拉列表添加到FooterTemplate中,这样当用户单击页面上的按钮时,我就可以访问它们的SelectedItems?

你说得有点对——动态添加的控件在回发后不再存在。在运行数据绑定事件之前,不会重新添加它们。问题是,数据绑定事件发生在控制事件之后,即按钮的单击事件之后。因此,在处理单击事件的页面生命周期中,这些控件尚未重新创建


.

您需要创建一个Addhandler:

dim dropdownlistname as new Dropdownlist
Addhandler dropdownlistname.selected_indexchanged,AddressOf dropdownlistname_SelectedIndexChanged
然后您需要创建一个子系统,如下所示:

Protected Sub dropdownlistname_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddldept.SelectedIndexChanged

'Insert Code here

End sub

它创建了一个事件,并为该事件声明了一个地址。您应该能够在此事件中编写任何代码。

您可以发布用于实例化控件的代码吗。