【发布时间】:2015-10-24 04:11:52
【问题描述】:
我目前在我的页面上有一个 CheckBoxList,我正在使用以下代码在 Page_Load 上动态添加项目:
ASP 控件:
<asp:CheckBoxList ID="clistSites" runat="server" />
由(在页面加载时调用)填充:
public void PopulateList()
{
siteList.Load(siteListPath);
XmlNodeList nodeList = siteList.SelectNodes("/sites/site");
clistSites.Items.Clear();
foreach (XmlNode node in nodeList)
clistSites.Items.Add(node["name"].InnerText.ToString());
}
哪个工作/显示正常。下一节是用户在下一阶段使用每个项目的复选框的位置,但是,选择单击“保存”按钮时,它运行以下代码:
ASP 控件:
<asp:Button runat="server" ID="btnPreUpdateNextStep" Text="Save and proceed" OnClick="btnPreUpdateNextStep_Click" />
后面的代码:
protected void btnPreUpdateNextStep_Click(object sender, EventArgs e)
{
foreach (ListItem item in clistSites.Items)
if (item.Selected) SiteList.Add(item.Text.ToString());
}
这应该将它们保存到一个列表中,定义如下:
public List<string> SiteList
{
get
{
if (this.ViewState["SiteList"] == null)
this.ViewState["SiteList"] = new List<String>();
return (List<String>)(this.ViewState["SiteList"]);
}
set
{
this.ViewState["SiteList"] = value;
}
}
但是,当 btnPreUpdateNextStep_Click 方法运行时,item.select 始终为 false。
我只想知道如何使选定的项目即使在页面刷新后仍然存在,并且还获取选中项目的文本。
如果您需要更多信息,请告诉我。
【问题讨论】: