我有一箇中繼器,並有一個複選框。當我點擊checkedchanged事件行中的第一個信息時,會在下面顯示。但第一次點擊後,我有麻煩。有時候信息是一樣的。因爲foreach總是看到第一次點擊。例如,我檢查了第二個,我看到了信息。然後我再次點擊第二個,我看到了信息,但這次我再次點擊了第一個。 Foreach可以採取第一個複選框,最後一個複選框仍然檢查,然後再次發回第二個操作。 有什麼辦法解決這個問題嗎? 這是我的示例代碼。如何禁用第一個複選框後,其他人點擊中繼器
<asp:Repeater ID="rptInformations" runat="server">
<ItemTemplate>
<asp:CheckBox ID="ckChoose" runat="server" OnCheckedChanged="ckChoose_CheckedChanged" AutoPostBack="true" />
<div id="foo" runat="server"> ... some basic titles ...</div>
</ItemTemplate>
<asp:Repeater>
<div id="info" runat="server"> ... informations in here (textboxes, labels ..etc)</div>
CodeBehind:
foreach (RepeaterItem item in rptInformations.Items)
{
//CheckBox ckChoose= (CheckBox)sender;
CheckBox ckChoose= item.FindControl("ckChoose") as CheckBox;
if (cBoxChoose.Checked)
{
... database process ...
}
}
您將該foreach放在哪個事件中? – CoderRoller
複選框OnCheckedChanged事件。但我真的不確定,它的效果很好,但我對此表示懷疑。我不確定。它是健康還是最好的方式? – Kadir
如果您的目標是根據中繼器中特定項目/行的值選擇chkbox,那麼我的方法是最好的,您應該嘗試一下,因爲它直接朝向一個項目,並且它會離開其餘的複選框處於原始狀態,您的迭代和驗證會消耗更多資源。順便說一句你的代碼我越來越UniqueID.ToString()等於current_cbId總是這樣它永遠不會進入如果,它是正確的? – CoderRoller