关于获取Datalist中Checkbox的值的小结

本文分享了一种在C#中从前台checkbox控件获取选中值的方法,通过遍历DataList项并检查CheckBox状态来收集学生ID。作者探讨了这种方法的效率,并邀请读者提供更优解决方案。

最近开发过程中遇到一个小问题,要获取checkbox的值,在网上搜索了一下,发现基本上都是用JS实现的,现在我将自己的做法记录一下,以便以后继续使用。

前台的示例代码如下,用的是datalist控件,要显示的是Student表中的StudentID和姓名

 <asp:DataList ID="dlTable" runat="server" >
            <ItemTemplate>
                <td align="center">
                    <asp:Label ID="lblID" runat="server" Text='<%#Eval("StudentID") %>' Visible="false"></asp:Label>
                    <asp:CheckBox ID="Chkbox" runat="server" />
                </td>
                <td>
                    <%#Eval("studentname") %>
                </td>
               <td>
                    <%#Eval("studentid") %>
                </td>
            </ItemTemplate>
        </asp:DataList>

后台代码如下:

            //new一个stringbulider的实例sbitems

            StringBuilder sbitems = new StringBuilder();
            foreach (DataListItem item in dlTable.Items)
            {

               //获取前台控件
                CheckBox chkbox = item.FindControl("Chkbox") as CheckBox;
                Label lbId = item.FindControl("lblID") as Label;

               //如果checkbox被check了,那么将对应的label绑定的值赋给sbitems,以进行后续的操作,比如删除。
                if (chkbox == null || lblID== null)
                {
                    continue;
                }
                if (chkbox.Checked)
                {
                    sbitems.Append(lblID.Text.ToString());
                    sbitems.Append(",");
                }
            }

        //由于多了一个逗号,所以还要remove掉逗号
            if (!sbitems.ToString().Trim().Equals(string.Empty))
            {
                sbitems.Remove(sbitems.Length - 1, 1);
            }

这样就获取了前台checkbox中选取的值,但是我感觉这个方法用的好像复杂了一点,各位达人如果有更好的通过C#获取Checkbox值得方法,请赐教。本人很想知道如何使用Checkboxlist的方法。

转载于:https://www.cnblogs.com/halia/archive/2010/04/02/1703319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值