>  기사  >  웹 프론트엔드  >  Layui의 테이블 모듈에서 기본 매개변수를 사용하는 방법

Layui의 테이블 모듈에서 기본 매개변수를 사용하는 방법

王林
王林앞으로
2021-02-01 15:34:413657검색

Layui의 테이블 모듈에서 기본 매개변수를 사용하는 방법

소개:

layui는 모든 수준의 프런트엔드 및 백엔드 개발자를 위해 전문 프런트엔드 개발자가 만든 낮은 임계값의 즉시 사용 가능한 프런트엔드 UI 솔루션입니다.

layui의 테이블 모듈은 기본 매개변수 측면에서 최대한 사용자 친화적으로 만드는, 즉 지나치게 복잡한 구성을 피하면서 기능의 전제를 보장하는 중요한 모듈입니다. 기본 매개변수는 일반적으로 다음과 같은 시나리오에서 나타납니다.

场景一:下述 lay-data 里面的内容即为基础参数项,切记:值要用单引号
<table lay-data="{height:300, url:&#39;/api/data&#39;}" lay-filter="demo"> …… </table>

场景二:下述方法中的键值即为基础参数项
table.render({
  height: 300
  ,url: &#39;/api/data&#39;
});

更多场景:下述options即为含有基础参数项的对象
> table.init(&#39;filter&#39;, options); //转化静态表格
> var tableObj = table.render({});
  tableObj.reload(options); //重载表格

다음으로 기본 요소가 무엇인지 살펴보겠습니다.

1. elem - 바인딩 요소는 table.render()의 렌더링 방법에만 적용 가능한 원본 테이블 컨테이너를 지정합니다.

HTML:
<table id="test"></table>

JS:
table.render({ //其它参数在此省略
  elem: &#39;#test&#39; //或 elem: document.getElementById(&#39;test&#39;) 等
});

2. 많은 값을 포함하고 2개의 테이블 헤더를 설정합니다. 차원 배열. 테이블의 "메서드 수준 렌더링"을 사용하는 경우 이 매개변수를 사용하여 테이블을 설정해야 합니다. 예:

JS:
table.render({
  cols:  [[ //标题栏
    {checkbox: true}
    ,{field: &#39;id&#39;, title: &#39;ID&#39;, width: 80}
    ,{field: &#39;username&#39;, title: &#39;用户名&#39;, width: 120}
  ]]
});

它等价于:
<table class="layui-table" lay-data="{基础参数}" lay-filter="test">
  <thead>
    <tr>
      <th lay-data="{checkbox:true}"></th>
      <th lay-data="{field:&#39;id&#39;, width:80}">ID</th>
      <th lay-data="{field:&#39;username&#39;, width:180}">用户名</th>
    </tr>
  </thead>
</table>

다음은 보조 헤더의 예입니다.

JS:
table.render({
  cols:  [[ //标题栏
    {field: &#39;username&#39;, title: &#39;联系人&#39;, width: 80, rowspan: 2} //rowspan即纵向跨越的单元格数
    ,{field: &#39;amount&#39;, title: &#39;金额&#39;, width: 80, rowspan: 2}
    ,{align: &#39;center&#39;, title: &#39;地址&#39;, colspan: 3} //colspan即横跨的单元格数,这种情况下不用设置field和width
  ], [
    {field: &#39;province&#39;, title: &#39;省&#39;, width: 80}
    ,{field: &#39;city&#39;, title: &#39;市&#39;, width: 120}
    ,{field: &#39;county&#39;, title: &#39;详细&#39;, width: 300}
  ]]
});
 
它等价于:
<table class="layui-table" lay-data="{基础参数}">
  <thead>
    <tr>
      <th lay-data="{field:&#39;username&#39;, width:80}" rowspan="2">联系人</th>
      <th lay-data="{field:&#39;amount&#39;, width:120}" rowspan="2">金额</th>
      <th lay-data="{align:&#39;center&#39;}" colspan="3">地址</th>
    </tr>
    <tr>
      <th lay-data="{field:&#39;province&#39;, width:80}">省</th>
      <th lay-data="{field:&#39;city&#39;, width:120}">市</th>
      <th lay-data="{field:&#39;county&#39;, width:300}">详细</th>
    </tr>
  </thead>
</table>

테이블 모듈은 Infinitus 헤더를 지원하며 위의 방식으로 계속 확장할 수 있습니다. 핵심은 rowspan 및 colspan 두 매개변수에 있습니다.

다음 단계는 테이블 헤더에 일부 매개변수를 설정하는 것입니다

f35d6e602fd7d0f0edfa6f7d103c1b57 필드 이름 설정

table.render({
  cols: [[
    {field: &#39;id&#39;} //其它参数在此省略
    ,{field: &#39;username&#39;}
  ]]
});

等价于:
<th lay-data="{field:&#39;id&#39;}"></th>
<th lay-data="{field:&#39;username&#39;}"></th>

2cc198a1d5eb0d3eb508d858c9f5cbdb 제목 설정

table.render({
  cols: [[
    {title: &#39;邮箱&#39;} //其它参数在此省略
    ,{title: &#39;签名&#39;}
  ]]
});

等价于:
<th lay-data="{}">邮箱</th> (PS:也可以把标题写在lay-data里面,即 title:&#39;邮箱&#39;)
<th lay-data="{}">签名</th>

5bdf4c78156c7953567bb5a0aef2fc53 너비: 열 너비를 설정합니다. 열 너비 설정은 일반적으로 필요하며(체크박스 열, 도구 모음 등과 같은 "특수 열" 제외) 이는 테이블의 전체적인 아름다움과 관련이 있습니다.

table.render({
  cols: [[
    {width: 80} //其它参数在此省略
    ,{width: 120}
  ]]
});

等价于:
<th lay-data="{width:80}"></th>
<th lay-data="{width:120}"></th>

23889872c2e8594e0f446a471a78ec4c 체크박스: 체크박스를 설정합니다. true로 설정하면 이 열의 내용이 체크박스임을 의미하며 일반적으로 첫 번째 열에 배치됩니다.

table.render({
  cols: [[
    {checkbox: true} //其它参数在此省略
    ,{field: &#39;id&#39;, title:&#39;ID&#39;, width: 100}
  ]]
});

等价于:
<th lay-data="{checkbox:true}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

여기서 LAY_CHECKED는 체크박스와 함께 사용된다는 점도 참고하세요. true로 설정하면 기본적으로 모든 체크박스가 선택된다는 의미입니다.

table.render({
  cols: [[
    {checkbox: true, LAY_CHECKED: true} //其它参数在此省略
    ,{field: &#39;id&#39;, title:&#39;ID&#39;, width: 100}
  ]]
});

等价于:
<th lay-data="{checkbox:true, LAY_CHECKED: true}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

43ad812d3a971134e40facaca816c822 space: 간격 열을 설정합니다. true로 설정하면 내용이 없는 15px 너비 열을 정의합니다.

table.render({
  cols: [[ //其它参数在此省略
    {space: true}
    ,{field: &#39;id&#39;, title:&#39;ID&#39;, width: 100}
  ]]
});

等价于:
<th lay-data="{space:true}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

efbfa0de8737dc86eae413541a49df20 sort: 정렬이 필요한지 여부입니다. true로 설정하면 해당 테이블 헤더에 정렬 아이콘이 표시되어 해당 열에 대한 정렬 기능이 활성화됩니다.

참고: 값이 존재하는 열(숫자 및 일반 문자)에 대해서는 사전식 비교를 입력하므로 정렬을 활성화하지 않는 것이 좋습니다. 예를 들어 'Xianxin' > '2' > '100', 이는 원하는 결과가 아닐 수도 있지만 사전 정렬 알고리즘(ASCII 코드 비교)은 이와 같습니다. 시퀀스 지식.

table.render({
  cols: [[
    {sort:true} //其它参数在此省略
    ,{field:&#39;id&#39;, title:&#39;ID&#39;, width:100}
  ]]
});

等价于:
<th lay-data="{sort:true}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

40107655ec554331c1c6222ab67a141c 고정: 고정 열이 필요한지 여부입니다. true 또는 'right'로 설정하면 해당 열이 왼쪽이나 오른쪽에 고정되고 스크롤 막대로 스크롤되지 않습니다.

table.render({
  cols: [[
    {fixed:true} //其它参数在此省略
    ,{field:&#39;id&#39;, title:&#39;ID&#39;, width:100}
    ,{field:&#39;username&#39;, title:&#39;姓名&#39;, width:120, fixed:&#39;right&#39;} //固定列在右
  ]]
});

等价于:
<th lay-data="{sort:true}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>
<th lay-data="{field:&#39;username&#39;, width:120, fixed:&#39;right&#39;}">姓名</th>

37cd6113a8c348d99fa846f2c6fcea98 edit: 편집 허용 여부. true로 설정하면 해당 열의 셀 편집이 허용됩니다. 현재는 type="text" 입력 편집만 지원됩니다.

table.render({
  cols: [[
    {edit:&#39;text&#39;} //其它参数在此省略
    ,{field:&#39;id&#39;, title:&#39;ID&#39;, width:100}
  ]]
});

等价于:
<th lay-data="{edit:&#39;text&#39;}"></th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

c161494dba5e0dd0fb25d890c74e408d template: 맞춤 템플릿. 기본적으로 셀의 내용은 데이터 인터페이스에서 반환된 것과 정확히 동일하게 출력됩니다. 특정 열의 셀에 링크 및 기타 요소를 추가하려는 경우 이 매개변수를 사용하여 쉽게 수행할 수 있습니다. 이것은 매우 실용적인 기능이며 테이블의 내용이 풍부하고 다양해집니다.

table.render({
  cols: [[
    {field:&#39;title&#39;, title: &#39;文章标题&#39;, width: 200, templet: &#39;#titleTpl&#39;} //这里的templet值是模板元素的选择器
    ,{field:&#39;id&#39;, title:&#39;ID&#39;, width:100}
  ]]
});

等价于:
<th lay-data="{field:&#39;title&#39;, width: 200, templet: &#39;#titleTpl&#39;}">文章标题</th>
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>

사실 Templet는 다음과 같은 HTML 콘텐츠의 일부일 수도 있습니다.

 templet: &#39;<div><a href="/detail/{{d.id}}" class="layui-table-link">{{d.title}}</a></div>&#39;
 注意:这里一定要被一层 <div></div> 包裹,否则无法读取到模板

eebe431eeb58984ec8915354762c30c6 일반적으로 테이블의 각 행에 보기, 편집, 삭제 등 유사한 작업 버튼을 추가해야 하며 이를 위해 도구 매개변수가 탄생하므로 매우 편리하게 다양한 작업 기능을 구현할 수 있습니다. 도구 매개변수는 템플렛 매개변수와 정확히 동일한 방식으로 사용됩니다. 일반적으로 선택기 또는 HTML 문자 단락을 허용합니다.

table.render({
  cols: [[
    {field:&#39;id&#39;, title:&#39;ID&#39;, width:100}
    ,{fixed: &#39;right&#39;, width:150, align:&#39;center&#39;, toolbar: &#39;#barDemo&#39;} //这里的toolbar值是模板元素的选择器
  ]]
});

等价于:
<th lay-data="{field:&#39;id&#39;, width:100}">ID</th>
<th lay-data="{fixed: &#39;right&#39;, width:150, align:&#39;center&#39;, toolbar: &#39;#barDemo&#39;}"></th>

다음은 페이지 어디에나 저장할 수 있는 도구 모음에 해당하는 템플릿입니다.

<script type="text/html" id="barDemo">
  <a class="layui-btn layui-btn-mini" lay-event="detail">查看</a>
  <a class="layui-btn layui-btn-mini" lay-event="edit">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-mini" lay-event="del">删除</a>

  <!-- 这里同样支持 laytpl 语法,如: -->
  {{#  if(d.auth > 2){ }}
    <a class="layui-btn layui-btn-mini" lay-event="check">审核</a>
  {{#  } }}
</script>

注意:属性 lay-event="" 是模板的关键所在,值可随意定义。

다음으로 테이블 모듈의 도구 모음 이벤트를 사용하여 다양한 작동 기능을 완성합니다.

//监听工具条
table.on(&#39;tool(test)&#39;, function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
  var data = obj.data; //获得当前行数据
  var layEvent = obj.event; //获得 lay-event 对应的值
  var tr = obj.tr; //获得当前行 tr 的DOM对象

  if(layEvent === &#39;detail&#39;){ //查看
    //do somehing
  } else if(layEvent === &#39;del&#39;){ //删除
    layer.confirm(&#39;真的删除行么&#39;, function(index){
      obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
      layer.close(index);
      //向服务端发送删除指令
    });
  } else if(layEvent === &#39;edit&#39;){ //编辑
    //do something

    //同步更新缓存对应的值
    obj.update({
      username: &#39;123&#39;
      ,title: &#39;xxx&#39;
    });
  }
});

관련 권장 사항: layui

위 내용은 Layui의 테이블 모듈에서 기본 매개변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제