gpt4 book ai didi

c# - 如何从 asp.net 中的复选框列表控件返回选定的项目

转载 作者:行者123 更新时间:2023-11-30 19:03:39 26 4
gpt4 key购买 nike

我试图在一个字符串中返回从动态绑定(bind)的复选框列表控件中选择的项目,但没有成功。我希望有人能提供帮助。在我的代码隐藏文件中,我正在连接一个名为用户的类并构建一个数据表。然后我将数据表绑定(bind)到 cblist 控件

        private void populateUserList() //called on page load
{

SubmitOptions mySubmission = new SubmitOptions(juris, rptType, tmplName);

if (mySubmission.Users.Count == 0)
{
lbl_juris.Visible = false;
cb_selectUser.Visible = false;
lbl_AlertMsg.Visible = true;
btnSelect.Visible = false;
lbl_AlertMsg.Text = "No supervisors listed for jursidiction: " + juris.ToString();
}
else
{

dt.Columns.Add("Users");
for (int i = 0; i < mySubmission.Users.Count(); i++)
{
DataRow dr = dt.NewRow();
dr["Users"] = mySubmission.Users[i];
dt.Rows.Add(dr);
}

cb_selectUser.DataSource = dt;
cb_selectUser.DataBind();
}

}

在主 aspx 文件中,我将控件定义为:

<asp:CheckBoxList ID="cb_selectUser"
Width="400px"
Height="100%"
AutoPostBack="false"
runat="server"
CellPadding="2"
CellSpacing="5"
DataTextField="Users"
DataValueField="Users"
>
</asp:CheckBoxList>

我已经尝试了以下代码,我在列表中迭代,但这似乎只有在我将值作为列表项硬编码到 Checkboxt 列表中时才有效。

 protected void btn_returnUserList(object sender, System.Web.UI.ImageClickEventArgs e)
{
for (int i = 0; i < cb_selectUser.Items.Count; i++)
{
if (cb_selectUser.Items[i].Selected)
{

selectedUsers += cb_selectUser.Items[i].Text;
}
}

列表填充正常,我想做的就是在一个字符串中返回复选框列表控件中所有选定的用户。

正如我所说,如果我将项目值硬编码到控件中,上面的代码就可以工作,并且我可以在字符串中看到选定的项目,但是删除项目列表标签并切换到绑定(bind)不会发生任何事情。上面的方法计算了返回的全部数量,但没有返回任何选择。

如有任何关于我遗漏的提示或建议,我们将不胜感激。

最佳答案

这是完全按照您的要求工作的页面的完整代码。只需添加一个 CheckboxList 以将其命名为 list1,添加一个按钮并将其命名为 btn 并添加一个标签并将其命名为 lbl。

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
var dt = new DataTable();
dt.Columns.Add("Users");

const string str = "User {0}";
for(var i=1;i<=10;i++)
{
//var r = dt.NewRow();
//r.ItemArray=new object[]{string.Format(str,i)};
dt.Rows.Add(new object[] {string.Format(str, i)});
}
list1.DataSource = dt;
list1.DataTextField = "Users";
list1.DataBind();
}
}

protected void btn_Click(object sender, EventArgs e)
{
var s = list1.Items.Cast<ListItem>()
.Where(item => item.Selected)
.Aggregate("", (current, item) => current + (item.Text + ", "));
lbl.Text = s.TrimEnd(new[] {',', ' '});
}

关于c# - 如何从 asp.net 中的复选框列表控件返回选定的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3770874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com