asp.net 动态产生checkbox

之前在网上看了很多,其实有一些也是大同小异,本人在此小编一下大致解决方案


摒弃微软提供的CheckBoxList

需求:

1动态产生一组checkbox(数据源为DB或内存集合)

2post提交时后台能及时获取

3提交后刷新页面checkbox保持原先选中或取消选中状态

4避免产生大量的viewstate

方案:使用repeater+input(checkbox)+input(hidden)

html代码

<asp:Repeater runat="server" ID="RPT_ReportType">
                              <ItemTemplate>
                              <input type="checkbox" value='<%#Eval("Id") %>' οnclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>
                              <input type="hidden" name="reportType"/>
                              </ItemTemplate>
                              <AlternatingItemTemplate>
                              <input type="checkbox" value='<%#Eval("Id") %>'  οnclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>   
                              <input type="hidden" name="reportType"/>                 
                              </AlternatingItemTemplate>
                              </asp:Repeater>

注:尽量把里面的OnClick中的匿名函数代码写在页头.

Js代码

    $(":hidden[name='reportType']").each(function () {
                var obj = $(this).prev();
                if (obj.attr('checked')){ $(this).val(obj.val()); }
            });

当post提交时后台获取

string[] _str = Request["reportType"].Split(',');
字符串数据不可避免的会有空字符串,注意删选,否则在拆箱时会出现类型转换异常


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值