jQuery MiniUI

标题: datagrid columns参数 [打印本页]

作者: liangzhl    时间: 2013-9-16 10:23:05     标题: datagrid columns参数

在demo的弹出面板中,弹出选择表格(JS),如何修改里面的UserSelectWindow.js方法?重载性更好呢?里面有一个表格,表格中有列,我想把列设置成动态添加,即设置一个columns属性,然后从外面去设置

var win = new UserSelectWindow();
            win.set({
                url: bootPATH + "../demo/data/AjaxService.jsp?method=SearchEmployees",                    
                title: "用户选择",
                width: 600,
                height: 350,
                columns:[{}]//比如这里设置了列,那么js里面即这几列。
            });

            win.show();
            win.search();


问,如何修改js?即如何把columns当作参数传进去呢?传进去后,如何解析列,设置到里面的grid中?

作者: liangzhl    时间: 2013-9-16 10:55:34

额。。。。。。。。木有人会么?
作者: xukefeng    时间: 2013-9-16 11:04:56

在js里面加一个data(变量名:值)
作者: liangzhl    时间: 2013-9-16 11:12:22

ShowGridWindow = function () {
        ShowGridWindow.superclass.constructor.call(this);
    this.initControls();
    this.initEvents();
}
mini.extend(ShowGridWindow, mini.Window, {
    url: "",
    keyField: "key",
    multiSelect: false,
   //这边如何加?columns:value,?
   
    title: "选择用户",
    keyLable: "名称:",
    searchLable: "查询:",
   
    width: 580,
    height: 320,
    bodyStyle: "padding:0;",
    allowResize: true,
    showModal: true,
    showToolbar: true,
    showFooter: true,
    initControls: function (){
        this.grid = new mini.DataGrid();
      
        this.grid.set({
            multiSelect: this.multiSelect,
            style: "width: 100%;height: 100%;",
            borderStyle: "border:0",
            columns://这里怎么写啊
            //columns: [
             //   { type: "checkcolumn", header: "#" },
            //{ type: "indexcolumn", header: "#", headerAlign: "center" },
             //   {header: "帐号", field: "loginname" },
            //    { header: "姓名", field: "name" }
            //]
        });
        this.grid.setUrl(this.url);
        this.grid.render(bodyEl);


//JSP中,我设置列想写成这样的
columns: [
      { type: "checkcolumn", header: "#" },
      { type: "indexcolumn", header: "#", headerAlign: "center" },
      {header: "帐号", field: "loginname" },
      { header: "姓名", field: "name" }
   ]
作者: factory    时间: 2013-9-16 11:29:19

给你的window加上columns属性,然后内部的this.grid的columns,设置为该window的columns

类似该 userselectwindow的searchLable这个属性,该属性也是自定义的,原来的window是没有的
作者: liangzhl    时间: 2013-9-16 11:36:14

mini.extend(ShowGridWindow, mini.Window, {
    url: "",
    keyField: "key",
    multiSelect: false,
   //这边如何加
   columns://这个属性我知道,就是不知道值怎么写:后面怎么写就不知道了
   
    title: "选择用户",
    keyLable: "名称:",
    searchLable: "查询:",
....

  this.grid.setColumns(this.columns);然后里面是这么设置的嘛。

jsp页面中呢?
var win = new ShowGridWindow();
            win.set({
                url: "../../../hld?t=list",                    
                title: "数据列表",
                width: 600,
                height: 350,
                showToolbar:false,
                showFooter:false,
                columns: [{ type: "indexcolumn" },{ type: "checkcolumn" },
                                { header: "类型", field: "type", width: 100 }
                ]
我想这样写,还是要怎么写?
作者: factory    时间: 2013-9-16 13:20:40

liangzhl 发表于 2013-9-16 11:36
mini.extend(ShowGridWindow, mini.Window, {
    url: "",
    keyField: "key",

columns:[]

然后加上
setColumns:function(columns){
   this.columns = columns;
}
前台直接给个columns数组




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2