我在我的asp.net網頁上有一個CheckBoxList,列表項硬編碼到HTML中(所以在回放時沒有回發/數據綁定問題)。當有人點擊提交按鈕時,我遍歷CheckBoxList中的項目並創建一個逗號分隔的任何選中值的字符串。但是,問題是無論如何,列表項的.Selected屬性總是爲false。我發現的所有解決方案必須聲明檢查!Page.IsPostBack確保數據沒有被擦除,但a)我已經檢查過,並且b)它不是一個真正的問題,因爲我沒有動態加載列表控件。下面是我的代碼:CheckBoxList ListItem.Selected沒有運行
標記
<asp:CheckBoxList id="chkGenderList" runat="server" data-paramname="genders">
<asp:ListItem Value="M" Text="Male" />
<asp:ListItem Value="F" Text="Female" />
<asp:ListItem Value="" Text="Unknown" />
</asp:CheckBoxList>
代碼隱藏
private string GetCheckBoxListValues(CheckBoxList chkList)
{
StringBuilder sb = new StringBuilder();
foreach (ListItem lst in chkList.Items) {
if (lst.Selected)
sb.Append (lst.Value).Append (",");
}
if(sb.Length > 0)
sb.Remove (sb.Length - 1, 1);
return sb.ToString();
}
我可以逐步和遍歷列表。我肯定有checkboxlist中的項目傳入方法,但每個ListItem,.Selected都是false。有任何想法嗎?
你爲什麼要使用CheckBoxList的?你真的希望用戶在這裏選擇多個值嗎?或者這只是你想要做的一個例子? –
你什麼時候調用這個方法?在哪個階段的頁面生命週期? – Andrei
當我在點擊按鈕的事件處理程序中測試代碼時,它完美地工作。 – ConnorsFan