1. 程式人生 > >easyui datagrid動態繫結列名和資料

easyui datagrid動態繫結列名和資料

ashx檔案內容 
public void ProcessRequest(HttpContext context)
    {//示例用,各位可以根據自己需求寫  

        var id = context.Request["id"];
        if (id.ToString().Equals("1"))
        {
            DataTable dt = createTable();

            DataRow dr = dt.NewRow();
            dr["field"] = "building_id";
            dr["title"] = "公寓編號";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["field"] = "building_name";
            dr["title"] = "公寓名稱";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["field"] = "building_info";
            dr["title"] = "公寓資訊";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["field"] = "school_area";
            dr["title"] = "所在校區";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            //string sql = "select building_id,building_name,building_info,school_area from building";
            //string countsql = "select count(*) from building";
            //int count = DBHelper.GetScalar(countsql);
            //DataTable dtt = DBHelper.GetDataSet(sql);

            DataTable dtt = new DataTable();
            dtt.Columns.Add("building_id");
            dtt.Columns.Add("building_name");
            dtt.Columns.Add("building_info");
            dtt.Columns.Add("school_area");
            DataRow drTemp;
            for (int i = 0; i < 10; i++)
            {
                drTemp = dtt.NewRow();
                drTemp["building_id"] = "A" + i.ToString();
                drTemp["building_name"] = "A" + i.ToString() + "號樓";
                drTemp["building_info"] = "A" + i.ToString() + "公寓";
                drTemp["school_area"] = "A" + i.ToString() + "小營";
                dtt.Rows.Add(drTemp);
            }
            int count = dtt.Rows.Count;
            Hashtable ht = new Hashtable();
            ht.Add("total", count);
            ht.Add("columns", dt);
            ht.Add("rows", dtt);
            string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(ht);


            context.Response.Clear();
            context.Response.ContentEncoding = Encoding.UTF8;
            context.Response.ContentType = "application/json";
            context.Response.Write(strJson);
            context.Response.Flush();
            context.Response.End();
        }
        else
        {
            DataTable dt = createTable();

            DataRow dr = dt.NewRow();
            dr["field"] = "building_id";
            dr["title"] = "公寓編號";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["field"] = "building_name";
            dr["title"] = "公寓名稱";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["field"] = "school_area";
            dr["title"] = "所在校區";
            dr["align"] = "center";
            dr["width"] = 100;
            dt.Rows.Add(dr);

            //string sql = "select building_id,building_name,school_area from building";
            //string countsql = "select count(*) from building";
            //int count = DBHelper.GetScalar(countsql);
            //DataTable dtt = DBHelper.GetDataSet(sql);
            DataTable dtt = new DataTable();
            dtt.Columns.Add("building_id");
            dtt.Columns.Add("building_name");
            dtt.Columns.Add("building_info");
            dtt.Columns.Add("school_area");
            DataRow drTemp;
            for (int i = 0; i < 10; i++)
            {
                drTemp = dtt.NewRow();
                drTemp["building_id"] = "B" + i.ToString();
                drTemp["building_name"] ="B"+ i.ToString() + "號樓";
                drTemp["building_info"] = "B"+i.ToString() + "公寓";
                drTemp["school_area"] = "B"+i.ToString() + "小營";
                dtt.Rows.Add(drTemp);

            }
            int count = dtt.Rows.Count;


            Hashtable ht = new Hashtable();
            ht.Add("total", count);
            ht.Add("columns", dt);
            ht.Add("rows", dtt);
            string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(ht);


            context.Response.Clear();
            context.Response.ContentEncoding = Encoding.UTF8;
            context.Response.ContentType = "application/json";
            context.Response.Write(strJson);
            context.Response.Flush();
            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);

        return dt;
    }  
 
    public bool IsReusable {
        get {
            return false;
        }
    }
前臺
<pre name="code" class="html"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>DataGrid動態生成列</title>
    <link id="Link1" rel="stylesheet" href="../jQEasyUI/jquery-easyui-1.4.2/themes/default/easyui.css"
        type="text/css" />
    <link rel="stylesheet" href="../jQEasyUI/jquery-easyui-1.4.2/themes/icon.css" type="text/css" />
    <script type="text/javascript" src="../jQEasyUI/jquery-easyui-1.4.2/jquery.min.js"
        charset="utf-8"></script>
    <script type="text/javascript" src="../jQEasyUI/jquery-easyui-1.4.2/jquery.easyui.min.js"
        charset="utf-8"></script>

    <script type="text/javascript">
        var grid;

        $(function () {

            grid = $('#tt').datagrid({
                fit: true,//自動大小    
                rownumbers: true,//行號   
                loadMsg: '資料裝載中......',
                singleSelect: true,//單行選取  
                pagination: false,//顯示分頁  
                //height:500px,
                //width:1000px,
                toolbar: '#tabs',
                columns: [[]],
                toolbar: [{
                    text: '顯示1',
                    iconCls: 'icon-add',
                    handler: newData
                }, '-', {
                    text: '顯示2',
                    iconCls: 'icon-add',
                    handler: newData2
                }]
            });

            //  self.parent.$("#tabs").tabs("loaded");
        });

        function newData() {

            $.post('Test.ashx', { id: 1 },
                function (data) {
                    grid.datagrid({
                        columns: [data.columns]
                    }).datagrid("loadData", data);
                }, 'json');
        }

        function newData2() {

            $.post('Test.ashx', { id: 2 },
                function (data) {
                    grid.datagrid({
                        columns: [data.columns]
                    }).datagrid("loadData", data);
                }, 'json');
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div style="height: 1000px">
            <table id="tt" style="height: 535px">
            </table>
        </div>
    </form>
</body>
</html>



相關推薦

easyui datagrid動態列名資料

ashx檔案內容 public void ProcessRequest(HttpContext context) {//示例用,各位可以根據自己需求寫 var id = context.Request["id"]; if (id

easyuidatagrid動態json載入列的解決方案

在做專案中有這樣一個問題:在前臺輸入sql語句,傳入後臺後獲得資料,將資料繫結在datagrid上顯示。 這個問題困擾我很久,因為如果是傳入sql語句的話,很難確定是哪個表,也不好確定到底有多少列,所以無法使用實體類來獲得資料,解析sql語句的話……..太

python3__面向物件__靜態方法 / 類方法 / 屬性方法 / 例項動態屬性方法 / 類動態屬性方法

0.普通方法 普通方法訪問類屬性:self.__class__.類屬性名稱 class Test(object): n = 123 def __init__(self, n): self.n = n def tell(self):

Jquery動態html5 datalist資料

<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>表單

給id屬性用v-bind動態物件字串

class和id 動態的繫結一個字串達到自定義名稱的方法::class="'字串'+item.value"  :id="'字串'+item.value" <!DOCTYPE html> <html> <head>   <meta c

Vue實戰--v-bind以及動態Classstyle

v-bind通常用來繫結屬性的,格式是v-bind:屬性名 = "值",簡寫:屬性名 = "值"  之前我們知道v-bind主要就是動態更新DOM的屬性的,class作為DOM的屬性當然也不例外,那麼v-bind怎麼動態更新class呢,分為三種方法:物件語法和陣列語法,還

第十一節:動態classstyle

在第六節的章節中,我們學會了如何給檢視上的html標籤繫結屬性。比如,給 <a> 標籤繫結href屬性,簡單回憶一下:<!-- v-bind指令 --><a v-bind:href="link"></a><!-- v-bi

easyUI-combobox 動態資料來源

前臺  <link rel="stylesheet" type="text/css" href="../css/easyui.css"/>  <script type="text/javascript" src="../js/jquery-1.7.1.mi

Easyui datagrid 本地Json資料

 var jsonstr = '{"total":1,"rows":[{"id":"M000005","name":"檢測裝置","sortid":3,"valid":"1","handler":"系統管理員"}]}';var data = $.parseJSON(jsonstr);  $

Easyui combobox下拉框動態資料

easyui-combobox根據資料庫查詢繫結資料,如下: 1、html <select id="st_cmpy" editable="false" class="easyui-comb

bootstrap-select下拉框模糊搜尋動態資料

前言 今天做專案的時候,需要對下拉框做一個模糊搜尋,就想到了bootstrap-select外掛, 在運用中遇到的問題進行總結下。 引入 引入bootstrap和bootstrap-select檔案 <link rel="stylesheet

Easyui 下拉列表動態資料 C#

                      前端程式碼: <input id="ipt_typeName" name="ipt_typeName"/>                   js: $('#ipt_typeName').combobo

C#利用LambdaExpression實現資料動態

在程式開發過程中,有時為了讓資料能夠實時更新,我們會採用資料繫結來實現。 一般我們資料繫結時我們是這樣寫的 public class Helper : INotifyPropertyChanged { #region statusI

HighChat動態資料 資料後臺(四)

後臺繫結資料,直接返回json資料 IList<SummaryHour> adHourData = summarybll.FindList(str); List<int> Hour = new List<int>() { 0, 1,

JQuery Ajax實現Select多級關聯動態資料

    關於JQuery選擇外掛的使用在這裡有些心得和大家分享一下,希望能幫到大家。     jQuery選擇外掛分為基本版和美化版,重點說下美化版,如下圖所示:     相比最原始的版本,美化後的選擇外掛可以說是很漂亮了且功

vue動態class的3種方式物件語法陣列語法

動態繫結class的幾種方式 1.物件語法 行內或計算屬性 <style> .static { width: 100px; height: 100px; background-color: #ccc; } .orange {

Java靜態動態

Java靜態繫結和動態繫結 靜態繫結 動態繫結 將方法呼叫連線到方法體稱為繫結。也就是通過呼叫方法連線到具體的方法體。 Java兩種繫結模式 首先了解一下變數和型別 每個基本變數都會有個型別 int a =1;double b =

動態(遲或者多型)抽象類

package jave; /*多型的三個條件 * 1 要有繼承; * 2 要有方法的重寫; * 3 父類引用指向子類的引用物件 */ /*動態繫結(遲繫結或者多型)--在執行期間(而非編譯期間)判斷引用物件的實際型別,根據其實際型別呼叫其相應的方法*/ abstra

C++ 動態靜態

virtual 函式實現多型性 #include <iostream> using namespace std; struct TreeNode { TreeNode *left; TreeNode *rignt; }; class Gener

jQuery easyui dataGrid 動態改變排序欄位名,一般情況下,在使用的時候,我們會點選相應欄位進行排序,這裡以JAVA為例,後端的實體類欄位有可能資料庫的欄位不一致; 如:實體類中的

jQuery easyui dataGrid 動態改變排序欄位名,一般情況下,在使用的時候,我們會點選相應欄位進行排序,這裡以JAVA為例,後端的實體類欄位有可能和資料庫的欄位不一致; 如:實體類中的屬性為userName,前臺filed="userName"而資料庫的欄位