• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net动态产生checkbox(数据源为DB或内存集合)
    之前在网上看了很多,其实有一些也是大同小异,本人在此小编一下大致解决方案摒弃微软提供的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") %>' onclick="{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") %>' onclick="{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(',');

    字符串数据不可避免的会有空字符串,注意删选,否则在拆箱时会出现类型转换异常
    您可能感兴趣的文章:
    • .Net Core内存回收模式及性能测试对比分析
    • asp.net中C#实现手动回收内存的方法
    • 基于.NET BitmapImage 内存释放问题的解决方法详解
    • asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)
    • .Net程序内存异常的原因及解决
    上一篇:ADO.NET无连接模式的详细介绍
    下一篇:三种方法让Response.Redirect在新窗口打开
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp.net动态产生checkbox(数据源为DB或内存集合) asp.net,动态,产生,checkbox,