我在每个项目中都有一个转发器和一个未绑定的复选框。 我想为被检查的物品做点什么。 但问题出在这里! 当我点击转发器外部的按钮时,只是我的页面刷新,没有任何反应。
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<asp:CheckBox ID="ChBox" runat="server" />
<asp:Label ID="rptBody" runat="server" Text='<%#Eval("subject") %>
<hr />
</ItemTemplate>
</asp:Repeater>
<asp:Button ID="btnDelete" runat="server" Text="Delete" Width="90px" onclick="btnDelete_Click" />
cs文件中的代码:
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in Repeater1.Items)
{
CheckBox ch = item.FindControl("ChBox") as CheckBox;
if (ch.Checked)
{
ch.Text = "IT is selected now";
}
}
}
答案 0 :(得分:5)
我认为你缺少的是,当你的网页没有回发时你应该绑定或设置数据源
if (!Page.IsPostBack)
{
rpt.DataSourceID = "";
rpt.DataBind();
}
我认为在你的情况下发生的事情是,在回发后你的转发器会被重新安装。