开发者

CheckboxList not setting Selected with Viewstate disabled

I h开发者_JAVA百科ave a CheckboxList that seems to load and do everything right, except for when I do a postback, it will not have the Item.Selected property set. I have viewstate disabled for the entire page.

I load it like so(inside Page_Load on every load):

foreach (DataRow service in d.Tables[0].Rows)
{
  cblServices.Items.Add(new ListItem((string)service["description"], service["id"].ToString()));
}

My markup is simple:

<asp:CheckBoxList runat="server" ID="cblServices" Width="300px"></asp:CheckBoxList>

and then, I use basically something like this(in a _Click serverside event for a button)

foreach(ListItem item in cblServices.Items){
  if(item.Selected){
    MyLabel.Text+="selected: "+item.Value+item.Text;
  }
}

and MyLabel never has any text added to it. I can verify with the debugger that it does reach the _Click's foreach loop, but no item is ever selected. What could be the cause of this?


If you're filling it on every Page_Load call, not only when Page.IsPostback = false then you're reseting the client selection on postback.

EDIT You should add your items on the PreInit or Init event, then you'll be able to keep the selected items correctly.

protected void Page_Init(object sender, EventArgs e)
{
    foreach (DataRow service in d.Tables[0].Rows)
    ...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜