gpt4 book ai didi

c# - 带有 HiddenField 的中继器

转载 作者:太空宇宙 更新时间:2023-11-03 17:22:31 25 4
gpt4 key购买 nike

我在标记为“AdminGetAllRPT”的转发器中有以下 HiddenField:

 <asp:Repeater ID="AdminGetAllRPT" runat="server" OnLoad="AdminGetAllRPT_Load">
<HeaderTemplate>
<table id="AdminGetAllTBL">
<tr>
<td></td>
<td>Username</td>
<td>Email Address</td>
<td>First Name</td>
<td>Last Name</td>
<td>Active?</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:LinkButton ID="AdminEditLnk" runat="server" OnClick="AdminEdit_OnClick">Edit
<asp:HiddenField ID="editAdminEmail" runat="server" Value='<%# Eval("emailAddress") %>' />
</asp:LinkButton>
</td>
<td><%# Eval("userName") %></td>
<td><%# Eval("emailAddress") %></td>
<td><%# Eval("firstName") %></td>
<td><%# Eval("lastName") %></td>
<td><%# Eval("isActive") %></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr class="alternateTemplate">
<td>
<asp:LinkButton ID="AdminEditLnk" runat="server" OnClick="AdminEdit_OnClick">Edit
<asp:HiddenField ID="editAdminEmail" runat="server" Value='<%# Eval("emailAddress") %>' />
</asp:LinkButton>
</td>
<td><%# Eval("userName") %></td>
<td><%# Eval("emailAddress") %></td>
<td><%# Eval("firstName") %></td>
<td><%# Eval("lastName") %></td>
<td><%# Eval("isActive") %></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
<tr>
<td colspan="2"><a href="#">Add Administrator</a></td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>

我有一个触发此代码的链接按钮:

protected void AdminEdit_OnClick(object sender, EventArgs e)
{
HiddenField hf = (HiddenField)AdminGetAllRPT.FindControl("editAdminEmail");

但是 hf 即将变为空。我做错了什么?

最佳答案

更改 AdminGetAllRPT.FindControl...

e.Item.FindControl...

编辑:感谢您对正确答案进行投票。

但是是的,e.Item.FindControl 是您想要的,因为您尝试做的不是按钮上的事件,而是转发器的 ItemCommand 上的事件。

<asp:Repeater OnItemCommand="MyButtonCommandEvent" ID="AdminGetAllRPT" runat="server" OnLoad="AdminGetAllRPT_Load">

然后在代码隐藏中你可以设置事件

void MyButtonCommandEvent(Object src, RepeaterCommandEventArgs e) {  
//My event that is raised for each button pressed in the RepeaterItem
var poo = e.Item.FindControl("myhiddenfieldid") as HiddenField;
}

完成...


要遍历所有 RepeaterItems,您可以在转发器外部设置一个按钮(或者可能在页脚或其他地方,这不是转发器 ItemCommand)

foreach(var item in AdminGetAllRPT.Items)
{
if (item.ItemType == RepeaterItemType.Item || item.ItemType == RepeaterItemType.AlternatingItem)
{
var hiddenField = item.FindControl("hiddenFieldid") as HiddenField;
//Do Stuff
}
}

关于c# - 带有 HiddenField 的中继器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com