Ame*_*sed 9 c# asp.net sharepoint sharepoint-2010 comboboxlist
我在代码中有以下aspx代码.我想在ListItem复选框中添加复选框, ColumnsList并在按钮单击时找到所有选中的复选框.
但是当我尝试获取所选项目按钮时,单击ColumnsList计数变为0.
<asp:checkboxlist runat="server" EnableViewState="true" id="ColumnsList"/>
Run Code Online (Sandbox Code Playgroud)
在后面的代码中,我将数据添加到我的ColumnsList,如下所示
public override void OnLoad()
{
if(!this.IsPostBack)
{
this.ColumnsList.Items.Add(new ListItem { Text= "Text1", Value = "value1" });
this.ColumnsList.Items.Add(new ListItem { Text= "Text2", Value = "value2" });
}
}
Run Code Online (Sandbox Code Playgroud)
//这是按钮单击侦听器
private void Button_Click(object sender, EventArgs eventArgs)
{
// Count is 0 instead of 2
var count = this.ColumnsList.Items.Count;
foreach(ListItem item in this.ColumnsList.Items)
{
var selected = item.Selected;
// add selected to a list..etc
}
}
Run Code Online (Sandbox Code Playgroud)
注意:该应用程序已在部署点2010中部署.
我试图模拟你正在尝试的东西,这是一步一步的解决方案.
第1步:
override OnLoad()您可以使用Page_Load()方法向ComboBoxList控件添加项目,而不是创建方法, 如下所示.在创建新的时,不要 忘记在comma介于Text和Value属性之间ListItem.
protected void Page_Load(object sender, EventArgs e)
{
if(!this.IsPostBack)
{
this.ColumnsList.Items.Add(new ListItem { Text= "Text1", Value = "value1" });
this.ColumnsList.Items.Add(new ListItem { Text = "Text2", Value = "value2" });
this.ColumnsList.Items.Add(new ListItem { Text = "Text3", Value = "value3" });
this.ColumnsList.Items.Add(new ListItem { Text = "Text4", Value = "value4" });
}
}
Run Code Online (Sandbox Code Playgroud)
第2步:在此之后,我创建了一个像你这样的按钮点击事件,但是只在那里写了一行来获取所选项目的数量,如下所示.
protected void Button1_Click(object sender, EventArgs e)
{
var count = this.ColumnsList.Items.Cast<ListItem>().Count(li => li.Selected);
}
Run Code Online (Sandbox Code Playgroud)
注意:检查按钮单击事件.this.ColumnsList.Items.Count将返回您在ComboBoxList中的项目的计数,并item.Selected从循环将告诉您该项目是否被选中.但是var selected,当您覆盖每个项目的值时,它将为您提供最后一项的状态.
我最终将加载列表的代码从 pageload 移动到 OnInit ,如下所示,它起作用了。
protected override void OnInit(EventArgs e)
{
this.ColumnsList.Items.Add(new ListItem { Text= "Text1", Value = "value1" });
this.ColumnsList.Items.Add(new ListItem { Text= "Text2", Value = "value2" });
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
627 次 |
| 最近记录: |