2

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

这很好用,除了我想在用户单击按钮时对每个 DropDownLists 的 SelectedItem 做一些事情。这些动态添加的控件似乎不再存在于用户单击按钮的帖子后面,我相信问题是因为我没有在 DropDownList 控件上指定 runat="server" 标记。

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

4

2 回答 2

2

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

这是一个相关的问题,可能有一些有用的信息

于 2009-05-18T19:58:46.083 回答
0

您需要创建一个 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

因此,它的作用是创建一个事件并声明一个地址以用于该事件。您应该能够在此事件中编写任何代码。

于 2009-05-18T21:20:49.083 回答