我有一个嵌套的转发器,我在页脚模板中使用了一个文本框。我想在按钮单击中获取 textbox.text 值。这是我的中继器:
<asp:Repeater ID="rprSSFirst" runat="server" OnItemDataBound="rprSSFirst_ItemDataBound" >
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
//******Some Items******
<asp:Repeater ID="rprSSNested" runat="server" > //Nested Repeater
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
//******Some Items******
</ItemTemplate>
<FooterTemplate>
<div style=" padding: 20px 35px;" id='ajax'>
<asp:TextBox ID="textbox" TextMode="MultiLine" Columns="50" Rows="10" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button2" runat="server" OnClick="btn_Save_Click" Text="Save" />
</div>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
//在代码隐藏中
protected void btn_Save_Click(object sender, EventArgs e)
{
TextBox txtAns = (TextBox)rprSSFirst.Controls[rprSSFirst.Controls.Count - 1].FindControl("textbox");
}
但是txtAns
值始终为空。如何在按钮单击中获取页脚项目 textbox
值?还是其他方式?
感谢您的回答。
最佳答案
您必须首先找到两个控件所在的嵌套RepeaterItem
。您可以通过转换 NamingContainer
来获取它:
protected void btn_Save_Click(object sender, EventArgs e)
{
Button btnSave = (Button) sender;
RepeaterItem item = (RepeaterItem) btnSave.NamingContainer;
TextBox txtAns = (TextBox) item.FindControl("textbox");
}
关于c# - 如何使用嵌套中继器获取代码后面的页脚项值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23358669/