Esp*_*spo 5 asp.net repeater footer
我需要从按钮的OnClick事件中的FooterTemplate内的文本框中获取值.我的第一个想法是遍历我的转发器上的items-property,但正如您在此示例中所看到的,它只包含实际的数据绑定项,而不是页脚项.
ASPX:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
Item<br />
</ItemTemplate>
<FooterTemplate>
Footer<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:Repeater>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
Run Code Online (Sandbox Code Playgroud)
代码behind.cs:
protected void Page_Load(object sender, EventArgs e)
{
ListItemCollection items = new ListItemCollection();
items.Add("value1");
items.Add("value2");
Repeater1.DataSource = items;
Repeater1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(Repeater1.Items.Count);
}
Run Code Online (Sandbox Code Playgroud)
此代码只输出"2"作为计数,那么如何在footertemplate中引用我的文本框?
从MSDN 文档来看,Items 只是一组基于您绑定到的 DataSource 的 RepeaterItems,并且不包含 Header 或 FooterTemplates 中的项目。
如果您想引用文本框,您可以从中继器获取 ItemDataBound 事件的引用,您可以在其中测试页脚。
例如
private void Repeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
TextBox textBox = e.Item.FindControl("TextBox1") as TextBox;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5676 次 |
| 最近记录: |