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', width:80, sortable:false,search:false},  "   +
                
"  {name:'ComID',index:'ComID', width:45 ,hidden:true}, "   +
                
"  {name:'CompNum',index:'CompNum', width:65}, "   +
                
"  {name:'CompName',index:'CompName', width: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);
    }

 

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

你可能感兴趣的:(jquery插件)