• Jquery插件 Jqgrid在ASP.Net下的使用方法与实例【转】


          刚接触jqgrid的时候被它的效果震撼了,不过找到使用文档都是针对php的,asp.net的都是编译好的dll,很不方便自定义的开发。后来多次搜索和研究才在c# .net下实现了。以下简单扼要的说一下实现原理。

          先说明一下,我这个例子的实现过程大概是这样的。因为我要实现很多表格,所以,这些加载都是动态的,先用.net输出jquer调用jqgrid代码,jqgrid再调用后台代码实现数据输出。

          首先,写一个方法,功能就是实现输出jqgrid调用模块。

    ////////////////////////////////////方法:生成调用Jqgrid的代码////// 
    private void bindProd_Sup(string tbl)
    {
         
    string id = Request["id"];
         
    string jsc ="<table id='" + tbl + "_list'></table>"+  
                    "<div id='" + tbl + "_pagersr'></div>" +
                    "<script  type="text/javascript">" +
                    "jQuery(\"#\" + tbl + \"_list\").jqGrid({" + 
                    " url:'CompData.aspx?datatype="+(tbl=="cont_cst"?"cst":"sup")+"&oper=listADD&ID=" + id + "'," +
                     ///这个是后台数据处理文件,请求这个文件,将得到json格式的数据。
                    " height:520," +
                    
    " datatype: "json"," +
                    
    " colNames:[ 'ADD','ID','SUP NUM','NAME']," +
                    
    " colModel:[" +
                    
    " {name:'ADD',index:'ADD', 80, sortable:false,search:false}, " +
                    
    " {name:'ComID',index:'ComID', 45 ,hidden:true}," +
                    
    " {name:'CompNum',index:'CompNum', 65}," +
                    
    " {name:'CompName',index:'CompName', 320}" +
                    
    " ]," +
                    
    " multiselect: true," +
                    
    " rowNum:20," +
                    
    " rowList:[20,40,80]," +
                    
    " pager: '#" + tbl + "_pagersr'," +
                    
    " sortname: 'ComID'," +
                    
    " viewrecords: true," +
                    
    " sortorder: "desc"," +
                    
    " caption:"COMPANY LIST"," +
                
    //  "{sopt:['cn','bw','eq','ne','lt','gt','ew']}," +
                    " toolbar : [true,"top"" +
                    
    " });" +
                
    // "jQuery("#"+tbl+"_list").jqGrid('"+tbl+"_listGrid',{sopt:['cn','bw','eq','ne','lt','gt','ew']});"+
                    "jQuery("#" + tbl + "_list").jqGrid('navGrid',"#" + tbl + "_pagersr",{edit:false,add:false,del:false}); " +
                    
    " </script>";
            jscS.InnerHtml 
    = jsc; ////将jqgrid调用代码输出
        }
    //////////////////////////////////////////

    以下是处理数据后台文件代码

     private void jsondata()
        {
            
    string DataType = Request.QueryString["datatype"!= null ? Request.QueryString["datatype"].ToString() : 
            
    string searchFiled = "";
            
    string indexFiled = "";
            
    string searchFiled_Sp1 = "";
            
    string searchFiled_Sp1_tbl = "";
            
    string searchFiled_Sp2 = "";
            
    string searchFiled_Sp2_tbl = "";
            
    string Sql = "";
            
    string SqlAnd = "";
           
    string Edit="";
            
    string Add="";
            
    string count = "";
            
    string countSql = "";
            
    string id="";
            
    string ids = "";
            
    switch (DataType)
            {
                
    case "SUP":
                
    case "CST":
                
    case "cst":
                
    case "sup":
                
    if (Request["oper"== "listADD")
                {
                    
    string ID = Request["ID"];
                    
    string INV_ID = "";
                    
    if (DataType == "sup")
                    {
                        INV_ID 
    = as_init.AS_GetValue("SELECT ProdNum FROM tblproduct where ProdID= " + ID);
                    }
                    
    else if (DataType == "cst")
                    {
                        INV_ID 
    = as_init.AS_GetValue("SELECT ContNum FROM tblcontact where ContID= " + ID);
                     }
                    earchFiled 
    = " A.ComID,A.CompNum,A.CompName";
                    indexFiled 
    = "A.ComID";
                    Sql 
    = " select  A.ComID,A.CompNum,A.CompName From tblcompany A";
                    SqlAnd 
    = "  WHERE  A.CompNum like '%" + DataType + "%' ";
                    countSql 
    = "select count(*) from tblcompany A ";
                    Add 
    = INV_ID + "|" + ID + "|" + DataType;
               }
               
    else
              {
                 searchFiled 
    = "A.ComID,A.CompNum,A.CompCreationDate,A.CompActivity,A.CompName, A.CompPostalCode,A.CompCountry";
                 indexFiled 
    = "A.ComID";
                 Sql 
    = " select A.ComID,A.CompNum,A.CompCreationDate,A.CompActivity,A.CompName, A.CompPostalCode,A.CompCountry From tblcompany A";
                 SqlAnd 
    = "  WHERE  A.CompNum like '%" + DataType + "%' ";
                 countSql 
    = "select count(*) from tblcompany A ";
                 Edit 
    = "800|580|AjaxEdit.aspx?Act=Edit|" + DataType;
               }
               
    break;
               
    case "prod_sup_l":
                    id=Request["id"];
                    ids 
    = as_init.AS_GetValue("select ProdNum from tblproduct where ProdID= " + id);
                    searchFiled 
    = " A.SupNum,B.CompName,B.CompPhone,B.CompAddress,A.Sp_ID ";
                    indexFiled 
    = "Sp_ID";
                    searchFiled_Sp1 
    = ",CompName,CompPhone,CompAddress";
                    searchFiled_Sp1_tbl 
    = "B";
                    Sql 
    = " select A.Sp_ID, A.SupNum,B.CompName,B.CompPhone,B.CompAddress  FROM  tblproductsupplier A LEFT JOIN tblcompany B ON A.SupNum=B.CompNum   ";
                    SqlAnd 
    = "  WHERE  A.ProdNum='" + ids + "";
                    countSql 
    = "select count(*) from tblproductsupplier A LEFT JOIN tblcompany B ON A.SupNum=B.CompNum  ";
                    Edit 
    = "";
                    
    break;
                
    case "inv_carton":
                    id 
    = Request["id"];
                    ids 
    = as_init.AS_GetValue("select ActNum from tblactivity where ActIndex= " + id);
                    searchFiled 
    = "A.cartonID, A.NCarton, A.Gweight,A.GVolume ";
                    indexFiled 
    = "cartonID";
                    Sql 
    = " select A.cartonID,A.ActNum, A.NCarton, A.Gweight,A.GVolume  FROM  tblactivitycarton A";
                    SqlAnd 
    = " WHERE ActNum='" + ids + "'";
                    countSql 
    = "select count(*) from tblactivitycarton ";
                    Edit 
    = "";
                    
    break;
            }
            
    string keyw = Request.QueryString["searchString"!= null ? Request.QueryString["searchString"].ToString() : "";
            
    string page = Request.QueryString["page"!= null ? Request.QueryString["page"].ToString() : "1"// get the requested page
            string limit = Request.QueryString["rows"!= null ? Request.QueryString["rows"].ToString() : "10"// get how many rows we want to have into the grid
            string sidx = Request.QueryString["sidx"!= null ? Request.QueryString["sidx"].ToString() : indexFiled; // get index row - i.e. user click to sort
            string sord = Request.QueryString["sord"!= null ? Request.QueryString["sord"].ToString() : "asc"// get the direction
            int start = Convert.ToInt32(limit) * Convert.ToInt32(page) - Convert.ToInt32(limit);
            
    ///////////////////sql where'///////////////////////////////////////
            string sqlw = "";
            
    string searchOn = Request.QueryString["_search"!= null ? Request.QueryString["_search"].ToString() : "";

            
    // if(searchOn=="true") {
            string fld = Request.QueryString["searchField"!= null ? Request.QueryString["searchField"].ToString() : "";
           
    // Response.Write(searchFiled.IndexOf(fld)+fld);
            if (searchFiled.IndexOf(fld) > 0 && fld != "" && fld !=null)
            {
                
    string fldata = Request.QueryString["searchString"!= null ? Request.QueryString["searchString"].ToString() : "";
                
    string foper = Request.QueryString["searchOper"!= null ? Request.QueryString["searchOper"].ToString() : "";
                
    // costruct where
                
    if ( searchFiled_Sp1.IndexOf(fld)>=0)
                {
                    sqlw 
    += searchFiled_Sp1_tbl + "." + fld;
                }
                
    else if (searchFiled_Sp2.IndexOf(fld)>=0)
                {
                    sqlw 
    += searchFiled_Sp2_tbl + "." + fld;
                }
                
    else
                {
                    sqlw 
    += "  A." + fld;
                }
                
    switch (foper)
                {
                    
    case "bw":
                        fldata 
    += "%";
                        sqlw 
    += " LIKE '" + fldata + "'";
                        
    break;
                    
    case "eq":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " = " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " = '" + fldata + "'";
                        }
                        
    break;
                    
    case "ne":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " <> " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " <> '" + fldata + "'";
                        }
                        
    break;
                    
    case "lt":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " < " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " < '" + fldata + "'";
                        }
                        
    break;
                    
    case "le":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " <= " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " <= '" + fldata + "'";
                        }
                        
    break;
                    
    case "gt":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " > " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " > '" + fldata + "'";
                        }
                        
    break;
                    
    case "ge":
                        
    if (is_numeric(fldata))
                        {
                            sqlw 
    += " >= " + fldata;
                        }
                        
    else
                        {
                            sqlw 
    += " >= '" + fldata + "'";
                        }
                        
    break;
                    
    case "ew":
                        sqlw 
    += " LIKE '" + fldata + "%'";
                        
    break;

                    
    case "cn":
                        sqlw 
    += " LIKE '%" + fldata + "%'";
                        
    break;
                }
            }
            
    //Response.Write(sqlw);
            if (sqlw != "")
            {
                sqlw
    =(SqlAnd!=""? SqlAnd+" and "+sqlw : " where "+sqlw);
            }
            
    else
            {
                sqlw 
    = (SqlAnd != "" ? SqlAnd  :"");
            }
            Sql 
    = Sql + sqlw + "  ORDER BY " + sidx + " " + sord + " LIMIT " + start + " , " + limit;
            DataTable datasinv 
    = as_init.as_DataTab(Sql);
            count 
    = as_init.AS_GetValue(countSql + sqlw);
            
    string dataJs = as_init.GetJson(datasinv, page, count, Edit, Add);
            Response.ContentType 
    = "text/plain";
            Response.Buffer 
    = true;
            Response.ExpiresAbsolute 
    = DateTime.Now.AddDays(-1);
            Response.AddHeader(
    "pragma""no-cache");
            Response.AddHeader(
    "cache-control""");
            Response.CacheControl 
    = "no-cache";
            Response.Write(dataJs);
        }

    原创:美芯科技(欢迎转载,但请保留链接)

  • 相关阅读:
    POJ1985 树的直径(BFS
    POJ2186 强连通分量+缩点
    AIM Tech Round 5C. Rectangles 思维
    POJ2553 汇点个数(强连通分量
    hdu6370 并查集+dfs
    UVALive 7037:The Problem Needs 3D Arrays(最大密度子图)
    POJ 3155:Hard Life(最大密度子图)
    HDU 5527:Too Rich(DFS+贪心)***
    HDU 5534:Partial Tree(完全背包)***
    Wannafly挑战赛1:Treepath(DFS统计)
  • 原文地址:https://www.cnblogs.com/scy251147/p/1798728.html
Copyright © 2020-2023  润新知