ASP.NET 控件中嵌套控件(以 GridView 套 Repeater 为例)

作者:vkvi 来源:ITPOW(原创) 日期:2020-2-16

我们在 GridView 中某一列,套了一个 Repeater 控件。绑定我们采用下面的方法:

  • Page_PreRender 中为 GridView 指明了 DataSource,并 DataBind()
  • gridView_DataBound 中循环各 Row,为其中的 Repeater 指明 DataSource,并 DataBind()。 

在声明代码中 Repeater 绑定的字段,不能是 GridView 的 DataSource 的字段,也就是说 GridView 的 DataSource 字段不能穿透到 Repeater 进行绑定。

同样的,Repeater 中的按钮,触发的事件是触发的 repeater_ItemCommand,而不是 gridView_RowCommand。

那么 repeater_ItemCommand 事件中,如何取 gridView 的值呢?通过 Parent,比如:

注意,上面有三个 Parent:

  • 第 1 个 Parent 是指到 Repeater,虽然我们这里 Repeater 并未在 HTML 中呈现一个为一个父级元素,但是还是需要使用 Parent。
  • 第 2 个 Parent 是 GridView 的 td。
  • 第 3 个 Parent 是 GridView 的 tr。
相关文章