我有一箇中繼器控件,每個項目/行都有一個asp:複選框控件和旁邊的一個按鈕。asp repeater複選框狀態保存
我的問題是,如果我檢查給定的複選框並點擊它旁邊的按鈕[回發前],先前選中的複選框的狀態(已選中) 將保留[回發後]。但我不希望它被保存下來,所以我已經做了所有的複選框執行以下操作:
- 禁用的視圖狀態(的EnableViewState =「假」)的複選框(和中繼器)的
- 定義的屬性選中=「假」
<td> <asp:CheckBox ID="chk_chooseTOL" CssClass="chk_chooseTOL" runat="server" Checked="false" EnableViewState="false" /> </td>
我在調試模式下中繼器的ItemDataBound事件期間,看着從代碼隱藏複選框的狀態,它的罰款,沒有任何複選框被選中,但是最後,頁面被顯示並且先前選中的複選框保持被選中。我不明白爲什麼。
你有什麼想法如何不保存我的複選框的狀態? (我需要的複選框是服務器端控件爲了ItemDataBound事件期間禁用它們在特定條件下)
謝謝
更多的代碼:
<asp:Repeater ID="rpt_CA" runat="server" DataSourceID="TLDataSource" EnableViewState="false" OnItemDataBound="rpt_CA_OnItemDataBound" ClientIDMode="Static" >
<HeaderTemplate>
<table class="ca_table persist-area" id="rpt_CA">
<thead>
<tr class="tl-header persist-header">
<th>Consultant</th>
<th>Mode</th>
<th></th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" Text='<%# Eval("EMPLOYEES.FULLNAME") + " (" + Eval("ID_EMPLOYEE") + ")" %>' />
</td>
<td>
<asp:Button runat="server" Text="Gen" EnableViewState="false" />
</td>
<td>
<asp:CheckBox ID="chk_chooseTOL" CssClass="chk_chooseTOL" runat="server" Checked="false" EnableViewState="false" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>
。
protected void rpt_CA_OnItemDataBound(object Sender, RepeaterItemEventArgs Args) {
if (Args.Item.ItemType == ListItemType.Item || Args.Item.ItemType == ListItemType.AlternatingItem)
{ TURNOVER_LINES currentTL = (TURNOVER_LINES)Args.Item.DataItem; RepeaterItem ri = Args.Item;
CheckBox chk_chooseTOL = Args.Item.FindControl("chk_chooseTOL") as CheckBox;
if(currentTL.IS_ALREADY_GEN)
{
chk_chooseTOL.Enabled = false;
}
}
}
你在Repeater級別嘗試過'EnableViewState =「False」嗎? –
是的,中繼器具有屬性EnableViewState =「False」,謝謝 – TGI
如果有的話,你可以發佈一些更多的asp代碼和代碼嗎? –