easyui datagrid动态列的方法

来源:互联网 发布:大冢爱 知乎 编辑:程序博客网 时间:2024/06/02 14:36
        

前台代码:

    function newDate(jhId) {                        $.post('../../ashx/operation/baogonglist.ashx?action=listsql', { jh: jhId },                    function (data) {                       alert(data.columns);                        grid.datagrid({                            columns: [data.columns]                        }).datagrid("loadData", data);                                  },"json");        }        $(function () {            var kinds = request("id");            alert("df");            grid = $("#td").datagrid({                fit: true,                columns: [[]],                toolbar: [{                    text: "",                    iconCls: 'icon-add',                    handler: newDate(kinds)                }]            })        })        function test(value, row, index) {            alert("df");            //if (index == 2) {            //    return ""            //}        }
后台代码:
<pre class="html" name="code">    private void listSqlDs(HttpContext context) {        string jh,l_jsonstr;        plmBLL plm = new plmBLL();        DataSet ds = new DataSet();        jh = context.Request["jh"];       // ds = plmM.getSqlDs(jh);        DataTable tab = new DataTable();        DataTable tab2 = new DataTable();        ds = plm.getSqlDs(jh);        tab2 = createTable();        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)        {            tab.Columns.Add("unitName" + i + "");            DataRow dr = tab2.NewRow();            dr["field"] = "unitName" + i; ;            dr["title"] = ds.Tables[0].Rows[i]["unitName"];            dr["align"] = "center";            dr["width"] = 100;
//formatter列
<span style="color:#ff6666;"></span> 
            dr["formatter"] = "test";            tab2.Rows.Add(dr);        }        for (int i = 1; i < ds.Tables[0].Columns.Count; i++)        {            DataRow dr = tab.NewRow();            for (int j = 0; j < ds.Tables[0].Rows.Count; j++)            {                dr["unitName" + j + ""] = ds.Tables[0].Rows[j][i];            }            tab.Rows.Add(dr);        }        ds.Tables.Add(tab);        Hashtable ht = new Hashtable();        ht.Add("total", tab.Rows.Count);        ht.Add("columns", tab2);        ht.Add("rows", tab);        l_jsonstr = JsonConvert.SerializeObject(ht);        context.Response.Clear();        context.Response.Write(l_jsonstr);        context.Response.End();    }

      public DataTable createTable()     {        DataTable dt = new DataTable("myTable");        //field列        DataColumn columnField = new DataColumn();//创建一列        columnField.DataType = System.Type.GetType("System.String");//数据类型        columnField.ColumnName = "field";//列名        dt.Columns.Add(columnField);//添加到table         //title列        DataColumn columnTitle = new DataColumn();         columnTitle.DataType = System.Type.GetType("System.String");         columnTitle.ColumnName = "title";         dt.Columns.Add(columnTitle);         //align列        DataColumn columnAlign = new DataColumn();         columnAlign.DataType = System.Type.GetType("System.String");         columnAlign.ColumnName = "align";         dt.Columns.Add(columnAlign);         //width列        DataColumn columnWidth = new DataColumn();         columnWidth.DataType = System.Type.GetType("System.Int32");         columnWidth.ColumnName = "width";         dt.Columns.Add(columnWidth);
//formatter列:
         DataColumn columnformatter = new DataColumn();         columnformatter.DataType = System.Type.GetType("System.String");         columnformatter.ColumnName = "formatter";         dt.Columns.Add(columnformatter);        return dt;     }
 
没加formatter列时的效果:
<img src="http://img.blog.csdn.net/20140903155935301?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM2MzA5NnM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

加了formatter列时的效果:
<img src="http://img.blog.csdn.net/20140903160041773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTM2MzA5NnM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
 
问题:加了formatter后下面的行显示不出来了,我想为第三行加一个按钮。
我的猜想,生成出来的json数据吧formatter后面的参数当做了一个字符串显示,而我在后台处理之后把生成出来的formatter后面参数的双引号去掉后也不能实现,有没有大神能解决。或者有没有更好的easyui datagrid动态生成列的方法.
先谢谢大家的解答:

0 0
原创粉丝点击