源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用FlexiGrid实现Extjs表格效果方法分享

  • 时间:2022-07-25 21:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用FlexiGrid实现Extjs表格效果方法分享
近一段时间Extjs真的是风光无限好,只要是个做CRM/HRM之类的企业现在都在琢磨怎么在项目中用它,不过兄弟我可是不敢,原因很简单:太大/太笨/源码不好调试。但是对于Extjs漂亮的表格与功能的强大,实在是让我垂涎三尺,记得以前有个老外同志写过一个类似的Extjs的Jquery插件,所以就在Jquery的插件海洋中一顿海找,呵呵,还真让我找到了。看来还是我的Jquery好,小巧简单好像一部好的汽车引擎,我想要什么就可以自已DIY,真是方便。总体方案在网络传输上不超过80KB,速度比500KB大小的Extjs不知道要小上多少哪。。。 [img]http://files.jb51.net/file_images/article/201412/2014121616403639.png[/img] [img]http://files.jb51.net/file_images/article/201412/2014121616403640.png[/img] 下载地址:+@SQL+             ') T9 ORDER BY '+             @Sort+             ') ORDER BY '+             @Sort         PRINT @Str         EXEC sp_ExecuteSql @Str
2 异步JSON数据传输实现
[url=http://tempuri.org/]http://tempuri.org/[/url]")]      [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]      public class GetDataSource4 : IHttpHandler      {          public void ProcessRequest(HttpContext context)          {              context.Response.ContentType = "text/plain";              //得到当前页              string CurrentPage = context.Request["page"];              //得到每页显示多少              string PageShowLimit = context.Request["rp"];              //得到主键              string TableID = context.Request["sortname"];              //得到排序方法              string OrderMethod = context.Request["sortorder"];              //得到要过滤的字段              string FilterField = context.Request["qtype"];              //得到要过滤的内容              string FilterFieldContext;              if (context.Request.Form["letter_pressed"] == null)              {                  FilterFieldContext = "";              }              else              {                  FilterFieldContext = context.Request["letter_pressed"];              }              //得到表的总行数              string TableRowCount = SqlHelper.ExecuteScalar(ConfigurationManager.AppSettings["SQL2"],                                      CommandType.Text,                                      "select count(*) from Person.Address"                                     ).ToString();              //得到主SQL              SqlParameter SQL = new SqlParameter("@SQL", SqlDbType.NVarChar);              //SQL.Value = "SELECT  * FROM Person.Address";              if (FilterFieldContext.Length == 0 || FilterField.Length == 0)              {                  SQL.Value = "SELECT  AddressID,AddressLine1,AddressLine2,PostalCode,City FROM Person.Address";              }              else              {                  string[] tmp = FilterField.Split(',');                  SQL.Value = "SELECT  AddressID,AddressLine1,AddressLine2,PostalCode,City FROM Person.Address where " + tmp[0] + " like '" + FilterFieldContext + "%'";              }              SqlParameter Page = new SqlParameter("@Page", SqlDbType.Int);              Page.Value = Convert.ToInt32(CurrentPage);              SqlParameter RecsPerPage = new SqlParameter("@RecsPerPage", SqlDbType.Int);              RecsPerPage.Value = Convert.ToInt32(PageShowLimit);              SqlParameter ID = new SqlParameter("@ID", SqlDbType.VarChar);              ID.Value = TableID;              SqlParameter Sort = new SqlParameter("@Sort", SqlDbType.VarChar);              Sort.Value = TableID;              //得到表              DataTable returnTable = SqlHelper.ExecuteDataset(ConfigurationManager.AppSettings["SQL2"],                          CommandType.StoredProcedure, "spAll_ReturnRows",                          new SqlParameter[]                              {                                  SQL,Page,RecsPerPage,ID,Sort                              }).Tables[0];              context.Response.Write(DtToSON2(returnTable, CurrentPage, TableRowCount));          }          /// <summary>          /// JSON格式转换          /// </summary>          /// <param name="dt">DataTable表</param>          /// <param name="page">当前页</param>          /// <param name="total">总计多少行</param>          /// <returns></returns>          public static string DtToSON2(DataTable dt, string page, string total)          {              StringBuilder jsonString = new StringBuilder();              jsonString.AppendLine("{");              jsonString.AppendFormat("page: {0},\n", page);              jsonString.AppendFormat("total: {0},\n", total);              jsonString.AppendLine("rows: [");              for (int i = 0; i < dt.Rows.Count; i++)              {                  jsonString.Append("{");                  jsonString.AppendFormat("id:'{0}',cell:[", dt.Rows[i][0].ToString());                  for (int j = 0; j < dt.Columns.Count; j++)                  {                      if (j == dt.Columns.Count - 1)                      {                          jsonString.AppendFormat("'{0}'", dt.Rows[i][j].ToString());                      }                      else                      {                          jsonString.AppendFormat("'{0}',", dt.Rows[i][j].ToString());                      }                      if (j == dt.Columns.Count - 1)                      {                          jsonString.AppendFormat(",'{0}'", "<input type=\"button\" value=\"查看\" id=\"sss\" onclick=\"sss(" + dt.Rows[i][0].ToString() + ")\" />");                      }                  }                  jsonString.Append("]");                  if (i == dt.Rows.Count - 1)                  {                      jsonString.AppendLine("}");                  }                  else                  {                      jsonString.AppendLine("},");                  }              }              jsonString.Append("]");              jsonString.AppendLine("}");              return jsonString.ToString();          }          public bool IsReusable          {              get              {                  return false;              }          }      }  }
3 页面实现
[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">  <html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">  <head runat="server">      <title></title>      <link rel="stylesheet" type="text/css" href="/css/flexigrid/flexigrid.css" />      <script type="text/javascript" src="/lib/jquery/jquery.js"></script>      <script type="text/javascript" src="flexigrid.js"></script>      <link type="text/css" rel="Stylesheet" href="facebox/facebox.css" />      <link type="text/css" rel="Stylesheet" href="body.css" />      <script type="text/javascript" src="facebox/facebox.js"></script>      <script type="text/javascript">          $("document").ready(function() {              $("#flex1").flexigrid              ({                  url: 'GetDataSource4.ashx',                  dataType: 'json',                  colModel: [                  { display: '地址ID', name: 'AddressID', width: 40, sortable: true, align: 'center' },                  { display: '具体地址1', name: 'AddressLine1', width: 140, sortable: true, align: 'left' },                  { display: '具体地址2', name: 'AddressLine2', width: 80, sortable: true, align: 'left' },                  { display: '邮编', name: 'PostalCode', width: 80, sortable: true, align: 'left' },                  { display: '城市', name: 'City', width: 80, sortable: true, align: 'left' },                  { display: '操作', name: 'Opt', width: 80, sortable: true, align: 'left' }                  ],                  buttons: [                  { name: 'A', onpress: sortAlpha },                  { name: 'B', onpress: sortAlpha },                  { name: 'C', onpress: sortAlpha },                  { name: 'D', onpress: sortAlpha },                  { name: 'E', onpress: sortAlpha },                  { name: 'F', onpress: sortAlpha },                  { name: 'G', onpress: sortAlpha },                  { name: 'H', onpress: sortAlpha },                  { name: 'I', onpress: sortAlpha },                  { name: 'J', onpress: sortAlpha },                  { name: 'K', onpress: sortAlpha },                  { name: 'L', onpress: sortAlpha },                  { name: 'M', onpress: sortAlpha },                  { name: 'N', onpress: sortAlpha },                  { name: 'O', onpress: sortAlpha },                  { name: 'P', onpress: sortAlpha },                  { name: 'Q', onpress: sortAlpha },                  { name: 'R', onpress: sortAlpha },                  { name: 'S', onpress: sortAlpha },                  { name: 'T', onpress: sortAlpha },                  { name: 'U', onpress: sortAlpha },                  { name: 'V', onpress: sortAlpha },                  { name: 'W', onpress: sortAlpha },                  { name: 'X', onpress: sortAlpha },                  { name: 'Y', onpress: sortAlpha },                  { name: 'Z', onpress: sortAlpha },                  { name: '%', onpress: sortAlpha }                  ],                  searchitems: [                   { display: '城市', name: 'City' , isdefault: true},                   { display: '邮编', name: 'PostalCode' }                   ],                  usepager: true,                  title: '客户信息',                  useRp: true,                  rp: 10,                  showTableToggleBtn: true,                  width: 700,                  height: 200,                  rpOptions: [10, 15, 20, 25, 40, 60], //可选择设定的每页结果数                  procmsg: '请等待数据正在加载中 …', //正在处理的提示信息                  resizable: false, //是否可伸缩                  sortname: "AddressID",                  //sortorder: "asc",//此列由于存储过程原因无法用              });          });          function sortAlpha(com) {              jQuery('#flex1').flexOptions({ newp: 1, params: [{ name: 'letter_pressed', value: com }, { name: 'qtype', value: $('select[name=qtype]').val()}] });              jQuery("#flex1").flexReload();          }          function sss(data)          {             var temp=eval(data);  //           jQuery.facebox(temp);             jQuery.facebox({ ajax: 'Default.aspx?id='+temp })          }      </script>  </head>  <body>      <table>      </table>  </body>  </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部