【问题标题】:Dynamically Add Footer to ASP.NET GridView向 ASP.NET GridView 动态添加页脚
【发布时间】:2010-10-27 03:21:04
【问题描述】:

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

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

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

【问题讨论】:

  • 你能贴出你用来实例化控件的代码吗?

标签: c# asp.net gridview footer


【解决方案1】:

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

Here's a related question which might have some useful information.

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多