У меня есть Repeater
и Button
. В Repeater
У меня есть HiddenField
контроль:ASP.NET HiddenField значение дублируется в Repeater после обратной передачи
<asp:Repeater runat="server" ID="rptItems">
<ItemTemplate>
<asp:HiddenField runat="server" ID="hfReportId"></asp:HiddenField>
</ItemTemplate>
</asp:Repeater>
<asp:Button runat="server" ID="btnSave" Text="Save" />
В коде позади, я привязки обработчика ItemDataBound
событий в Repeater
в Page_Load:
this.rptItems.ItemDataBound += new RepeaterItemEventHandler(rptItems_ItemDataBound);
В обработчик событий, я устанавливаю значение программного обеспечения HiddenField
:
protected void rptItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
var hfReportId = (HiddenField)e.Item.Controls[0].FindControl("hfReportId");
hfReportId.Value = "TestValue";
}
}
До сих пор это работает как ex и значение HiddenField
установлено на «TestValue».
Проблема возникает при обратной передаче. Если я нажмю кнопку «Сохранить», обработчик события ItemDataBound
будет запущен снова, а значение HiddenField
будет установлено еще раз, однако исходное значение сохраняется, и я получаю значение «TestValue, TestValue». Я поменял HiddenField
на контроль над меткой, и этого бахавира не бывает.
Я прошел через код, и когда обработчик события ItemDataBound
срабатывает при обратной передаче, нет значения для HiddenField
.
Любая помощь приветствуется.
Не используйте '() e.Item.Controls скрытого [0] .FindControl ("hfReportId");' 'а (скрытый) e.Item.FindControl ("hfReportId"); '. Он RepeaterItem - это NamingContainer, поэтому он более безопасен. Попробуйте зарегистрировать событие декларативно: '' –
Также вы используете JQuery и/или ASP.NET Ajax? Является ли этот повторитель в диалоговом окне пользовательского интерфейса jQuery? –
Да - я использую ASP.NET Ajax. Это, по-видимому, является причиной проблемы - когда я удаляю его, HiddenField обновляется, как ожидалось. Кажется, что элементы управления HiddenField обрабатываются по-разному с элементами управления Label? – Ash