ASP.net Repeater单个细胞

时间:2011-02-11 23:36:21

标签: asp.net repeater

是否可以从Repeater项目属性中获取单元格数据,例如

Dim test As String = myRepeater.Items(index).DataItem(2)

其中myRepeater有x行和10列,并且是从DataTable

绑定的

似乎它应该是微不足道的,但看起来无法访问单个单元格。请详细说明一下。

1 个答案:

答案 0 :(得分:1)

不直接 - 请记住,转发器是非常非常简单的web控件,转发器本身对它下面的内容的了解有限。

但你可以很容易地获得内部物品。最好的方法是使用项目中的控件来帮助您查找内容。 EG,鉴于此转发器“行”:

<ItemTemplate>
  <asp:Button runat="server" ID="theButton" text="Click Me!" OnClick="doIt" /> <asp:TextBox id="theTextBox" value="Whateeavs" />
</ItemTemplate>

您可以使用按钮的点击处理程序查找行中的其他项目:

protected void doIt(object s, EventArgs e) {
   var c = (Control)s;
   var tbRef = c.NamingContainer.FindControl("theTextBox");
   var tb = (ITextControl)tbRef;
   doSomethingWith(tb.Text);
}

通常比使用绝对定位在行中查找内容更清晰 - 您不必担心索引等。

PS:自从我制定了重要的网络表单代码以来,它已经是一个很长的时间,没有我获得类名的野蛮人等,完全正确。