【发布时间】:2016-09-23 22:48:49
【问题描述】:
我有一个 asp.net 项目,我们称它们为对象。 所有对象都在转发器中创建:
<section class="topbar">
<asp:Button runat="server" ID="btnSave" OnClick="btnSave_OnClick" Text="Save" />
</section>
<asp:Repeater runat="server" id="gwList">
<ItemTemplate>
<div class="block">
<input type="checkbox" runat="server" ID="chkObjectSelected" value='<%# ((Object.Object)Container.DataItem).Id %>'/>
<label><%# ((Object.object)Container.DataItem).Title %></label>
</div>
</ItemTemplate>
</asp:Repeater>
问题来了,所有选中的对象都不会在回发中设置为选中。这是我用来确定是否检查对象的代码:
protected void btnSave_OnClick(object sender, EventArgs e)
{
List<string> objectIdSelected = new List<string>();
foreach (RepeaterItem oneObject in gwList.Items)
{
HtmlInputCheckBox chkObj = (HtmlInputCheckBox)carAd.FindControl("chkObjectSelected");
if (chkObj.Checked)
{
objectIdSelected.Add(chkObj.Value.ToString());
}
}
}
【问题讨论】:
-
您是否在
Page_Load中填充中继器?如果是这样,请确保它在if (!IsPostBack)条件内。 -
@ConnorsFan - 这是我的问题的解决方案!
标签: c# asp.net checkbox postback