当前位置:  开发笔记 > 编程语言 > 正文

如何从asp.net中的checkboxlist控件返回所选项目

如何解决《如何从asp.net中的checkboxlist控件返回所选项目》经验,为你挑选了1个好方法。

我试图在字符串中返回动态绑定的复选框列表控件中的所选项目,没有运气.我希望有人可以提供帮助.在我的代码隐藏文件中,我正在连接一个名为users的类并构建一个数据表.然后我将数据表绑定到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文件中,我将控件定义为:


        

我尝试了下面的代码,我在列表中进行了迭代,但这似乎只有当我将值硬编码到Checkboxt列表中作为listitems时才会起作用.

 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;
            }
        }

列表填充正常,我想要做的就是从复选框列表控件中以字符串形式返回所有选定的用户.

正如我所说,如果我将项目值硬编码到控件中,上面的代码可以工作,我可以看到字符串中的选定项目,但是删除itemslist标签并切换到绑定nothign.上面的方法计算了整个返回数,但是没有返回任何选择.

任何有关我缺少的提示或建议将不胜感激.



1> TheVillageId..:

这里是完全符合您需要的完整页面代码.只需添加一个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()
                   .Where(item => item.Selected)
                   .Aggregate("", (current, item) => current + (item.Text + ", "));
            lbl.Text = s.TrimEnd(new[] {',', ' '});
        }

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有