ASP.NET表格数据绑定具体怎么做呢??刚用layui 琢磨了一天了

提问 已结
39 448
怎样ヾ
怎样ヾ 2017-11-11
悬赏:20飞吻
版本:layui layui 2.1.2 浏览器:google
大哥哥帮帮忙吧 ASP.NET表格数据绑定具体怎么做呢??
回帖
  • @怎样ヾ 其实 你可以看看这个官方给提供的接口
    http://www.layui.com/demo/table/user/?page=2&limit=2
    改改page 和 limit 的值, 你应该能看出来,你需要给前台提供什么样的数据了,
    你只需要提供总条数,拿page 当前页数,limit 每页显示的条数,根据这两个参数,返回每页的数据即可
    0 回复
  • @怎样ヾ



    这个是我的效果
    1 回复
  • 老舟
    6天前
    前台代码:
    <table class="layui-table" lay-data="{width:'auto',height:'auto', url:'getdata.ashx?action=load',where:{orderfield:'id'},limits:[10,20,50,100],limit:10, page:true, id:'test'}" lay-filter="test">
    <thead>
    <tr>
    <th lay-data="{field:'序号', width:70, fixed:'left'}">序号</th>
    <th lay-data="{fixed: 'right', width:180, align:'center', toolbar: '#barDemo'}"></th>
    <th lay-data="{field:'id', width:40}">ID</th>
    <th lay-data="{field:'phone', width:150}">手机号码</th>
    <th lay-data="{field:'username', width:100}">用户名</th>
    <th lay-data="{field:'company', width:180,sort:true}">公司名称</th>
    <th lay-data="{field:'role', width:100}">角色</th>
    <th lay-data="{field:'password', width:300}">密码</th>


    </tr>
    </thead>
    </table>
    后台代码:(这个ashx是多个action复用的)
    using Newtonsoft.Json;
     context.Response.ContentType = "text/plain";
    string action = context.Request.QueryString["action"].ToString();
    switch (action)
    {
    case "load":
    //pageName: 'curr' //页码的参数名称,默认:page
    //limitName: 'nums' //每页数据量的参数名,默认:limit
    int page_number = Convert.ToInt16(context.Request.QueryString["page"].ToString());
    int page_rows = Convert.ToInt16(context.Request.QueryString["limit"].ToString());
    string orderfield = context.Request.QueryString["orderfield"].ToString();
    int pos_start = (page_number - 1) * (page_rows) + 1;
    int pos_end = (page_number) * page_rows;

    StringBuilder sb = new StringBuilder();
    sb.AppendLine(" with pagecont as (");
    sb.AppendLine(string.Format("select ROW_NUMBER() over (order by {0}) as 序号,id,company,phone,username,password,case role when 1 then '管理员' else '普通用户' end role from phoneuser)", orderfield));
    sb.AppendLine(string.Format("select * from pagecont where 序号>={0} and 序号<={1}", pos_start, pos_end));
    DataSet myds = mysqloperate.GetDS(sb.ToString());


    //定义datetime类型数据转换格式
    Newtonsoft.Json.Converters.IsoDateTimeConverter mydtconv = new Newtonsoft.Json.Converters.IsoDateTimeConverter();
    mydtconv.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";

    string data = JsonConvert.SerializeObject(myds, Newtonsoft.Json.Formatting.None, mydtconv);

    //都需要处理掉多余的头数据,第一个[开始之前的,以及最后一个}
    int first = data.IndexOf("[");
    data = data.Remove(0, first);
    data = data.Remove(data.Length - 1, 1);

    //数据状态的字段名称,默认code ,成功的状态码,默认:0,状态信息的字段名称,默认:msg,数据总数的字段名称count,数据列表的字段名称data
    int code = 0;
    string msg = "";

    int counts = mysqloperate.DataCount("select count(*) from phoneuser");
    string json = "{\"code\":" + code.ToString() + ",\"msg\":\"" + msg + "\",\"count\":" + counts.ToString() + ",\"data\":" + data + "}";

    //从数据库中直接转换出来时null会保留,必须将其替换
    json = json.Replace("null", "\"\"");
    context.Response.Write(json);
    break;
    //其他action
    }
    1 回复
  • 怎样ヾ
    2017-11-11
    我用一般程序返回的
    0 回复
  • 怎样ヾ
    2017-11-11
    {"code": 0,"msg": "","count": 105,"data":[{"UserName":"1","QQ":"测试"},{"UserName":"10","QQ":"测试"},{"UserName":"11","QQ":"测试"},{"UserName":"12","QQ":"测试"}]}
    0 回复
  • @怎样ヾ 你这个方法 返回的就是啊
    0 回复
  • 怎样ヾ
    2017-11-11
    这样返回前台没办法分页
    0 回复
  • 您是什么问题?绑定不是吗?我最近刚刚用Java 做了小栗子呢
    0 回复
  • 怎样ヾ
    2017-11-11
    @天边的微笑 这样返回前台没办法分页
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 asp.net从数据库中读取数据放在表格中
    0 回复
  • http://www.layui.com/demo/table/user/?page=1&limit=30

    数据的话,格式和这个官方的一致就没啥问题了,关键是,你html 和js 是如何写的?需要提供一下,别人才能帮你看问题啊
    0 回复
  • 怎样ヾ
    2017-11-11
    @天边的微笑 这个是Handler.ashx的内容
    这个是js的

    前台页面
    0 回复
  • @怎样ヾ 你最好把hitml 和js 提供一下,后台数据的话,只有符合官方标准,前台能正常访问你的接口,那应该就是 js 或者 html 写的不太符合用法
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 我只会写ashx 不会写官方的这个http://www.layui.com/demo/table/user/?page=1&limit=30
    0 回复
  • @怎样ヾ 我 不知道你是不是没有把 page 和limit 值传递给后台啊?分页的时候,这两个值很关键的,如果每次都一样,那就无法分页了
    0 回复
  • @怎样ヾ 看你的SQL 应该是没有传递到后台,你的SQL 是取出全部的吧?分页需要这两个参数才能决定的
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 http://cdn.layui.com/upload/2017_11/7651728_1510394524750_2253.png
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 这个是我ashx的代码
    0 回复
  • 怎样ヾ
    2017-11-11
    0 回复
  • @怎样ヾ 嗯,我看到这个图片了,我理解的是,你SQL中没有分页相关的参数,对吧?只是查询出所有结果,这样的话,前端框架是没法帮你分页的,只是首次加载的时候会显示分页效果,后面的就不能翻页了
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 pageSize 每页显示多少条数据
    pageNumber 页数 从客户端传来
    totalRecouds 表中的总记录数 select count (*) from 表名
    totalPages 总页数
    totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
    pages 计算前pages 条数据
    pages= pageSize*(pageNumber-1)
    SQL语句:
    select top pageSize * from 表名 where id not in (select top pages id from 表名 order by id) order by id



    把值传进来这样可以吧
    0 回复
  • @怎样ヾ 你用的是什么数据库》SQL server? 我用的是mySql ,Java环境 hibernate
        select
    this_.id as id1_2_0_,
    this_.city as city2_2_0_,
    this_.classify as classify3_2_0_,
    this_.experience as experien4_2_0_,
    this_.logins as logins5_2_0_,
    this_.score as score6_2_0_,
    this_.sex as sex7_2_0_,
    this_.sign as sign8_2_0_,
    this_.username as username9_2_0_,
    this_.wealth as wealth10_2_0_
    from
    lay_user this_ limit 20,10

    limit 是 MySQL 的语法,和其他的应该不一样, 前端框架会吧 page 和limit 传过来
    page=1&limit=10
    page 是第几页
    limit 每页显示几条
    根据limit 算出 当前从第几条 取 limit条 每页要显示的条数
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 我用的SQL server
    0 回复
  • @怎样ヾ 我查查看哈,我不太了解 SQL server 的sql 语法,我看看能不能帮你写个SQL参考一下
    0 回复
  • @怎样ヾ 我刚刚查了一下,你写的SQL 应该没问题

    select top 每页条数 * from table1
    where id not in(select top 开始的位置 id from table1)
    0 回复
  • @怎样ヾ [阴险] 我发现你也是河南人啊
    0 回复
  • 怎样ヾ
    2017-11-11
    嗯嗯 刚刚我试过传值了 可以
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 谢谢
    0 回复
  • 怎样ヾ
    2017-11-11
    @冬日温暖 是呀 现在在许昌上学 学的软件开发
    0 回复
  • @怎样ヾ [哈哈] 不客气,我也是昨天晚上开始使用的,昨晚发现了这个问题,感觉你应该和我一样的呢
    0 回复