gpt4 book ai didi

asp.net - 为什么我的转发器控件在回发时为空?

转载 作者:行者123 更新时间:2023-12-02 07:08:30 24 4
gpt4 key购买 nike

我认为这是我几年没有使用 dome WebForms 开发造成的“doh”时刻。

我有一个中继器,其中包含一堆复选框:

<asp:Repeater EnableViewState="true" ID="IDTypesRepeater" runat="server" OnItemDataBound="IdTypesRepeaterItemDataBound">
<HeaderTemplate/>
<ItemTemplate>
<asp:CheckBox EnableViewState="true" ID="chkIdType" Text="<%# ((KeyValuePair<string,int>)Container.DataItem).Key %>" runat="server" />
<asp:HiddenField ID="idType" Value="<%# ((KeyValuePair<string,int>)Container.DataItem).Value %>" runat="server"/>
<br />
</ItemTemplate>
</asp:Repeater>

我需要获取后面代码中选中的复选框:

 foreach (RepeaterItem repeaterItem in IDTypesRepeater.Items)
{
if ( ((CheckBox)repeaterItem.FindControl("chkIdType")).Checked )
{
// Do something
}
}

但在回发时,此代码不起作用!我知道总是对转发器进行数据绑定(bind),所以我这样做了:

protected void Page_Load(object sender, EventArgs e)
{
IDTypesRepeater.DataSource = DocTemplateHelper.GetApplicableIDTypes().Where(type => type.Value != 0);
IDTypesRepeater.DataBind();
}

所以这会重新填充中继器,但更新代码永远不会找到任何选中的复选框。有什么想法吗?

最佳答案

在 Page_Init 事件中绑定(bind)

protected void Page_Init(object sender, EventArgs e)
{
IDTypesRepeater.DataSource = DocTemplateHelper.GetApplicableIDTypes().Where(type => type.Value != 0);
IDTypesRepeater.DataBind();
}

关于asp.net - 为什么我的转发器控件在回发时为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384396/

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