123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- Namespace.register("U.MD.UI.table");
- /*
- 表格控件的基础函数
- param1 datasource 数据源是一个object类型数组。
- param2 titles 标题是一个json类型数据
- param3 css 样式是一个json类型数据
- param4 parent 父元素
- */
- U.MD.UI.table = function (datasource, titles, css, parent) {
- U.MD.UI.table.thead(datasource, titles, css, parent);
- //创建表格
- }
- /*
- 表格控件的头部函数
- param1 {json} datasource 数据源是一个object类型数组。
- param2 {json} titles 标题是一个json类型数据
- param3 {json} css 宽度是一个json类型数据
- param4 {element} parent 父元素
- param5 {number} index 默认页面
- param6 {number} prows 页面
- */
- U.MD.UI.table.thead = function (datasource, titles, css, parent, index, prows) {
- if (!index) {
- //index默认为一
- index = 1;
- //prwos默认为数据源的长度
- prows = datasource.length;
- }
- var _table, _thead, _tr, _tbody;
- //申明变量
- _table = $$("table", { style: {
- "text-align":"center",
- "position": "relative",
- "width": " 100%",
- "border-collapse": " collapse",
- "border-width": " 1px",
- "border-style": " solid",
- "border-color": " rgb(213, 213, 213)",
- "border-image": " initial",
- "display": "table"} }, parent);
- //创建table标签
- _thead = $$("thead", {}, _table);
- //创建thead标签
- _tr = $$("tr", {}, _thead);
- //创建tr标签
- for (var num in titles) {
- //遍历titles
- if (typeof titles[num] === "object") {
- //判断是否有绑定事件
- $$("th", { innerHTML: titles[num].name, style: {
- "cssText": css[num],
- "padding": "10px 0",
- "font-weight": "normal",
- "border": "1px solid #d5d5d5"
- }, id: "th" }, _tr);
- //生成th
- } else {
- $$("th", { innerHTML: titles[num], style: {
- "cssText": css[num],
- "padding": "10px 0",
- "font-weight": "normal",
- "border": "1px solid #d5d5d5"
- }, id: "th" }, _tr);
- //生成th
- }
- }
- _tbody = $$("tbody", { style: { cssText: "width:100%;" }, id: "tbody" }, _table);
- //生成tbody
- U.MD.UI.table.tbody(_tbody, datasource, titles, css, index, prows);
- //运行tbody函数
- return _tbody;
- //返回tbody
- }
- /*
- 表格控件的身体函数
- param1 {element} parent 父元素,表格生成的地方
- param2 {json} datasource 数据源是一个object类型数组。
- param3 {json} titles 标题是一个json类型数据
- param4 {json} css 宽度是一个json类型数据
- param5 {number} index 默认页面
- param6 {number} prows 页面行数
- */
- U.MD.UI.table.tbody = function (parent, datasource, titles, css, index, prows) {
- var _tr, _td, _div, _neirong;
- //申明变量
- for (var num = (index - 1) * prows; num < index * prows && num < datasource.length; num++) {
- //建立一个循环,以(index - 1) * prows为初始值,index * prows为终点进行循环
- if (num % 2 != 0) {
- //判断table列表的行数是否是单数
- _tr = $$("tr", { style: { cssText: "background-color: #FFF;" }, id: "tr" }, parent);
- //行数是单的背景颜色是白色
- } else {
- _tr = $$("tr", { style: { cssText: "background-color: #dde4ee;" }, id: "tr" }, parent);
- //行数是双的背景颜色是#dde4ee
- }
- for (var name in titles) {
- //遍历titles
- _td = $$("td", { id: "td" }, _tr);
- //生成td
- if (titles[name].content) {
- for (var k = 0; k < titles[name].content.length; k++) {
- //遍历添加的元素
- _div = U.MD.UI.table.printDiv(_td, titles[name].content[k]);
- //生成div
- if (titles[name].content[k].onclick) {
- U.MD.UI.table.onclick(_div, datasource[num], titles[name].content[k].onclick);
- }
- //添加点击事件
- }
- } else {
- _div = $$("div", { innerHTML: datasource[num][name], style: { "overflow": "hidden", "cssText": css[name]} }, _td);
- if (titles[name].id) {//判断是否需要给td添加id
- _div.id = datasource[num][titles[name].id];
- }
- }
- }
- }
- }
- /*
- 表格控件的分页表格函数
- param1 {json} datasource 数据源 json
- param2 {json} titles 标题是一个json类型数据
- param3 {json} css 宽度是一个json类型数据
- param4 {number} prows 页面行数 int
- param5 {number} index 默认页面 int
- param6 {element} parent 父元素
- */
- U.MD.UI.table.pageTable = function (datasource, titles, css, prows, index, parent) {
- var _div = $$("div", { "style": {
- "left": "0px",
- "right": "0px",
- "width": "100%",
- "margin": "0 auto",
- "top": "200px" }
- }, parent);
- //生成一个大div放表格和分页
- var _tdiv = $$("div", {}, _div);
- //生成一个div 放表格
- var _tbody = U.MD.UI.table.thead(datasource, titles, css, _tdiv, index, prows);
- //生成表格,放_tdiv里
- var _pdiv = $$("div", { "style": {"width": "650px", "margin": "20px auto 0 auto"}}, _div); //生成一个div 放分页按钮
- new U.UF.P.page(_pdiv, datasource.length, prows, index, function (page) {
- //生成分页控件,当点击其他页面是触发匿名波函数
- U.MD.UI.table.delChild(_tbody);
- //当点击下一页时,首先删除tbody 下全部子元
- U.MD.UI.table.tbody(_tbody, datasource, titles, css, page, prows);
- //生成tbody
- });
- }
- /*
- 删除子元素函数
- param {element}obj 删除子元素的函数
- */
- U.MD.UI.table.delChild = function (obj) {
- for (var num = obj.children.length - 1; num >= 0; num--) {
- //得到元素底下的全部子元素
- obj.removeChild(obj.children[num])
- //删除子元素
- }
- }
- /*
- 点击事件函数
- param1 {element} obj 点击事件的触发对象
- param2 {json} datasource 展示的数据
- */
- U.MD.UI.table.onclick = function (obj, datasource, fun) {
- obj.onclick = function () {
- //绑定事件
- fun(datasource);
- }
- }
- /*
- 打印div
- param2 {sting || element} content 生成内容(字符串或者元素)
- param1 {element} parent 生成的父元素
- */
- U.MD.UI.table.printDiv = function (parent, content) {
- var _div;
- //判断content类型是否是字符串
- if (typeof content.name == "string") {
- //是字符串的生成div,打印内容
- _div = $$("div", { "innerHTML": content.name }, parent);
- }
- //如果content类型是object类型
- if (typeof content.name == "object") {
- //就克隆Contet
- var _dd = content.name.cloneNode(true);
- parent.appendChild(_dd);
- _div = _dd;
- }
- return _div;
- }
|