• 项目经验之:坚决丢掉GridView ,你的数据展示才能做得更好!



    终于放弃了微软自带的 GridView ,,数据的展示全部通过HTML + js + jQUERY 程现.

    下面脚本是分页脚本 ,通过调用传入的 一般处理页面程序进行处理

     1 //首页
    2 function first(pageindex,pagesize, handlepage, act,data) {
    3 $.post("../handle/" + handlepage, { page: pageindex,psize:pagesize, action: act, data: data },
    4 function(data) {
    5 if (act.indexOf('$') == -1)
    6 $("#content").html(data);
    7 else
    8 $("#content" + act.substr(act.indexOf('$') + 1)).html(data);
    9 });
    10 }
    11
    12 //上一页
    13
    14 function back(pageindex, pagecount,pagesize, handlepage, act, data) {
    15 if (pageindex > 1) {
    16 $.post("../handle/" + handlepage, { page: pageindex - 1,psize:pagesize, action: act, data: data },
    17 function(data) {
    18 if (act.indexOf('$') == -1)
    19 $("#content").html(data);
    20 else
    21 $("#content" + act.substr(act.indexOf('$') + 1)).html(data);
    22 });
    23 }
    24 }
    25
    26 //下一页
    27
    28 function next(pageindex, pagecount,pagesize, handlepage, act, data) {
    29
    30 if (pageindex + 1 <= pagecount) {
    31 $.post("../handle/" + handlepage, { page: pageindex + 1,psize:pagesize, action: act, data: data },
    32 function(data) {
    33 if (act.indexOf('$') == -1)
    34 $("#content").html(data);
    35 else
    36 $("#content" + act.substr(act.indexOf('$') + 1)).html(data);
    37 });
    38 }
    39
    40 }
    41
    42 //末页
    43 function last(pageindex,pagesize, handlepage, act, data) {
    44 $.post("../handle/" + handlepage, { page: pageindex,psize:pagesize, action: act,data:data },
    45 function(data) {
    46 if (act.indexOf('$') == -1)
    47 $("#content").html(data);
    48 else
    49 $("#content" + act.substr(act.indexOf('$') + 1)).html(data);
    50 });
    51
    52 }
    53
    54 //跳转到第几页
    55 function go(pageindex, pagecount,pagesize, handlepage, act, data) {
    56 if (isNaN(pageindex)) {
    57 alert("请输入数字!");
    58 return false;
    59 }
    60 if (pageindex > 0 && pageindex <= pagecount) {
    61 $.post("../handle/" + handlepage, { page: pageindex,psize:pagesize, action: act,data:data},
    62 function(data) {
    63 if (act.indexOf('$') == -1)
    64 $("#content").html(data);
    65 else
    66 $("#content" + act.substr(act.indexOf('$') + 1)).html(data);
    67 });
    68 }
    69 }

    后面一般处理程做了封装。。统一由request["action"]传入的参数进行处理

      1 public class FunItemHandler : IHttpHandler, IRequiresSessionState
    2 {
    3
    4 DataRow MyRow;
    5 DataColumn column = new DataColumn();
    6 DataTable table = new DataTable();
    7
    8 int pageSize = Config.PageSize; //页记录数
    9 int recordCount = 0; //记录总数
    10 string orderField = "SSO_FunItem.FunItemCode asc, SSO_FunItem.Sort asc ";
    11 int pageIndex = 1; //页索引
    12 int pageCount = 10; //页总数
    13
    14 private StringBuilder strWhere = new StringBuilder();
    15 string strTable = " SSO_FunItem";
    16
    17 HtgtIPSCommon.Base.UserInfo userInfo = null;
    18
    19 public void ProcessRequest (HttpContext context) {
    20 context.Response.ContentType = "text/plain";
    21
    22 if (context.Request["action"] != null)
    23 {
    24 if (context.Request["psize"] != null && context.Request["psize"] != "undefined")
    25 pageSize = int.Parse(context.Request["psize"]);
    26 else
    27 pageSize = Config.PageSize;
    28 switch (context.Request["action"])
    29 {
    30 case "list": //不分页查询
    31 QueryList(context,100);
    32 break;
    33 case "insert": //增加
    34 ListInfo(context, 1);
    35 break;
    36 case "update": //修改
    37 ListInfo(context, 2);
    38 break;
    39 case "delete": //删除
    40 ListInfo(context, 3);
    41 break;
    42 case "listPage": //分页查询
    43 QueryList(context, pageSize);
    44 break;
    45 default:
    46 break;
    47 }
    48
    49 }
    50 }
    51 /// <summary>
    52 /// 查询数据
    53 /// </summary>
    54 /// <param name="pageSize"></param>
    55 public void QueryList(HttpContext context, int pageSize)
    56 {
    57 FunItemBll funItembll = new FunItemBll();
    58 strWhere.Append(" 1=1");
    59 pageIndex = context.Request["page"] == null ? 1 : int.Parse(context.Request["page"]);
    60
    61 //执行反序列化
    62 JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
    63 FunItemModel data = jsonSerializer.Deserialize<FunItemModel>(context.Request["data"]);
    64 if (!string.IsNullOrEmpty(data.Condition))
    65 {
    66 strWhere.Append(" and "+ data.Condition.Split('$')[0] +" like '%" + data.Condition.Split('$')[1] + "%'");
    67 }
    68
    69 //System.Data.DataSet ds_FunItem = funItembll.Query_Sql(strWhere.ToString(), strTable, pageSize, pageIndex, out recordCount, orderField);
    70
    71 DataTable dt = funItembll.FunItemTable(strWhere.ToString(), pageIndex, pageSize, out recordCount);
    72 System.Data.DataSet ds_FunItem = new DataSet();
    73 ds_FunItem.Tables.Add(dt);
    74 if (recordCount % pageSize > 0)
    75 {
    76 pageCount = recordCount / pageSize + 1;
    77 }
    78 else
    79 {
    80 pageCount = recordCount / pageSize;
    81 }
    82 AutoGrid.Common.AutoGrid grid = new AutoGrid.Common.AutoGrid();
    83 grid.PkField = "FunItemCode";
    84 grid.FieldName = "FunItemCode,FunName,WebURL,SearchCondition";
    85 grid.FieldText = "菜单编码,名称,地址,快捷搜索条件";
    86 grid.ColumnWidth = "";
    87 grid.TableStyle = "tableList"; //样式
    88 grid.IsCheckBox = true;
    89
    90 string html = grid.PrintWebList(ds_FunItem, recordCount, pageIndex, pageCount, pageSize, "FunItemHandler.ashx", "listPage", HttpUtility.HtmlEncode(context.Request["data"]));
    91
    92 context.Response.Write(html);
    93 }
    94 /// <summary>
    95 /// 增加,修改,删除操作
    96 /// </summary>
    97 /// <param name="context"></param>
    98 /// <param name="pageSize"></param>
    99 public void ListInfo(HttpContext context, int flag)
    100 {
    101 //执行反序列化
    102 JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
    103 FunItemModel data = jsonSerializer.Deserialize<FunItemModel>(context.Request["data"]);
    104 BaseBLL<FunItemModel, FunItemDal> bll = new BaseBLL<FunItemModel, FunItemDal>();
    105 FunItemModel model = null;
    106 FunItemBll funItemBll = null;
    107
    108 userInfo = (UserInfo)context.Session["userInfo"];
    109 if (flag == 1) //增加
    110 {
    111 model = new FunItemModel();
    112 funItemBll = new FunItemBll();
    113 if (bll.Exists(" FunItemCode='" + data.FunItemCode + "'"))
    114 {
    115 context.Response.Write("0");
    116 return;
    117 }
    118 model.FID = funItemBll.GetSeedID("SSO_FunItem"); //分配FID
    119 model.FunItemCode = data.FunItemCode;
    120 model.FunName = data.FunName;
    121 model.FunTitle = data.FunTitle;
    122 model.ParentID = data.ParentID;
    123 if (data.ParentID == 0)
    124 {
    125 model.ParentIDPath = "0";
    126 model.FunLevel = 1;
    127 }
    128 else {
    129 model.ParentIDPath = "0," + model.ParentID;
    130 model.FunLevel = model.ParentIDPath.Split(',').Length;
    131 }
    132 model.FunICO = data.FunICO; //菜单图标
    133 model.WebURL = data.WebURL;
    134 model.IsAppURL = data.IsAppURL;
    135 model.IsUse = data.IsUse;
    136 model.Target = data.Target;
    137 model.Sort = data.Sort;
    138 model.SearchCondition = data.SearchCondition;
    139
    140 model.FCUser = data.FCUser; //这一块从Session中取
    141 model.FCDate = DateTime.Now;
    142
    143 List<ActionBtnModel> listItems = null;
    144
    145 if (data.Condition != "")
    146 {
    147 listItems = new List<ActionBtnModel>();
    148 //获取按钮对象集
    149 string[] items = data.Condition.Split(',');
    150 foreach (string item in items)
    151 {
    152 if (item != "")
    153 {
    154 ActionBtnModel actionBtnModel = new ActionBtnModel();
    155 string[] temp = item.Split('$');
    156 actionBtnModel.BtnType = temp[0].ToString();
    157 actionBtnModel.BtnICO = temp[1].ToString();
    158 actionBtnModel.BtnName = temp[2].ToString();
    159 actionBtnModel.BtnID = temp[3].ToString().Trim();
    160 actionBtnModel.BtnMain = temp[4].ToString();
    161
    162 actionBtnModel.FunItemUrl = data.WebURL;
    163 actionBtnModel.FunItemCode = data.FunItemCode;
    164 listItems.Add(actionBtnModel);
    165 }
    166 }
    167 }
    168
    169
    170 model.ListActionBtn = listItems;
    171 int count = bll.Insert(model);
    172 if (count > 0)
    173 context.Response.Write("1"); //成功
    174 else
    175 context.Response.Write(null);
    176 }
    177 else if (flag == 2) //修改
    178 {
    179
    180 model = new FunItemModel();
    181 funItemBll = new FunItemBll();
    182 model = funItemBll.GetModel(data.FunItemCode);
    183
    184 model.FunName = data.FunName;
    185 model.FunTitle = data.FunTitle;
    186 model.ParentID = data.ParentID;
    187 if (data.ParentID == 0)
    188 {
    189 model.ParentIDPath = "0";
    190 model.FunLevel = 1;
    191 }
    192 else
    193 {
    194 model.ParentIDPath = "0," + model.ParentID;
    195 model.FunLevel = model.ParentIDPath.Split(',').Length;
    196 }
    197 model.WebURL = data.WebURL;
    198 model.IsAppURL = data.IsAppURL;
    199 model.IsUse = data.IsUse;
    200 model.Target = data.Target;
    201 model.Sort = data.Sort;
    202 model.SearchCondition = data.SearchCondition;
    203
    204 model.FEUser = data.FEUser; //这一块从Session中取
    205 model.FEDate = DateTime.Now;
    206
    207 List<ActionBtnModel> listItems = null;
    208
    209 if (data.Condition != "")
    210 {
    211 listItems = new List<ActionBtnModel>();
    212 //获取按钮对象集
    213 string[] items = data.Condition.Split(',');
    214 foreach (string item in items)
    215 {
    216 if (item != "")
    217 {
    218 ActionBtnModel actionBtnModel = new ActionBtnModel();
    219 string[] temp = item.Split('$');
    220 actionBtnModel.BtnType = temp[0].ToString();
    221 actionBtnModel.BtnICO = temp[1].ToString();
    222 actionBtnModel.BtnName = temp[2].ToString();
    223 actionBtnModel.BtnID = temp[3].ToString().Trim();
    224 actionBtnModel.BtnMain = temp[4].ToString();
    225
    226 actionBtnModel.FunItemUrl = data.WebURL;
    227 actionBtnModel.FunItemCode = data.FunItemCode;
    228 listItems.Add(actionBtnModel);
    229 }
    230 }
    231 }
    232 model.ListActionBtn = listItems;
    233
    234 int count = bll.Update(model);
    235 if (count > 0)
    236 context.Response.Write("2"); //成功
    237 else
    238 context.Response.Write(null);
    239 }
    240 else if (flag == 3) //删除
    241 {
    242 int count = bll.Delete(data.FID);
    243 if (count > 0)
    244 context.Response.Write("1"); //成功
    245 else
    246 context.Response.Write(null);
    247 }


     

      1 function funBtnSelect()
    2 {
    3 var ajaxManage = new AjaxManage();
    4 var obj = new Object();
    5 var id = GetQueryString("fid");
    6 var data = {
    7 FID: id
    8 }
    9 obj.url = "FunItemHandler";
    10 obj.page = "1";
    11 obj.data = data;
    12 obj.action = "listPage"
    13
    14 obj.SuccessCallFunc = function (data) {
    15 if (data != null) {
    16 $("#content").html(data)
    17 }
    18 };
    19 obj.BeforeSendCallFunc = function () {
    20 $("#content").html("读数据加载中...");
    21 };
    22 obj.CompleteCallFunc = function () {
    23 };
    24 ajaxManage.QAjax(obj);
    25 }
    26
    27 $(function(){
    28 var ajaxManage = new AjaxManage();
    29 var obj = new Object();
    30 var id = GetQueryString("fid");
    31 var data = {
    32 FID: id
    33 }
    34 obj.url = "FunItemHandler";
    35 obj.page = "1";
    36 obj.data = data;
    37 obj.action = "listPage"
    38
    39 obj.SuccessCallFunc = function (data) {
    40 if (data != null) {
    41 $("#content").html(data)
    42 }
    43 };
    44 obj.BeforeSendCallFunc = function () {
    45 $("#content").html("读数据加载中...");
    46 };
    47 obj.CompleteCallFunc = function () {
    48 };
    49 ajaxManage.QAjax(obj);
    50 })
    51 function funBtnInsert()
    52 {
    53 window.location.href="FunItemInfo.aspx";
    54 }
    55 function funBtnUpdate()
    56 {
    57 var ids = [];
    58 $(":input[name='checkbox']:checked").each(function () {
    59 ids.push($(this).val());
    60 })
    61 var checkInfo = "";
    62 if (ids.length == 1 ) {
    63 checkInfo = ids[0];
    64 window.location.href="FunItemInfo.aspx?fid="+checkInfo;
    65 }
    66 else if(ids.length==0){
    67 $.messager.alert('提示', '请选择一条记录进行操作!', 'info');
    68 return;
    69 }
    70 else if(ids.length>1){
    71 $.messager.alert('提示', '您选择了多条记录,只能选择一条记录进行修改!', 'info');
    72 return;
    73 }
    74 }
    75 function funBtnDelete()
    76 {
    77 var ids = [];
    78 $(":input[name='checkbox']:checked").each(function () {
    79 ids.push($(this).val());
    80 })
    81 if(ids.length==0){
    82 $.messager.alert('提示', '请选择一条记录进行操作!', 'info');
    83 return;
    84 }
    85 else if(ids.length>1){
    86 $.messager.alert('提示', '您选择了多条记录,只能选择一条记录进行删除!', 'info');
    87 return;
    88 }
    89 else if(ids.length == 1 ){
    90 $.messager.confirm('提示信息', '您确认要删除吗?', function (data) {
    91 if(data)
    92 {
    93 var ajaxManage = new AjaxManage();
    94 var obj = new Object();
    95 var id = GetQueryString("fid");
    96 var data = {
    97 FID: ids[0]
    98 }
    99 obj.url = "FunItemHandler";
    100 obj.page = "1";
    101 obj.data = data;
    102 obj.action = "delete"
    103
    104 obj.SuccessCallFunc = function (data) {
    105 if (data != null) {
    106 if(data==1)
    107 {
    108 $.messager.alert('提示', '数据操作成功!', 'info');
    109 funBtnSelect();
    110 }
    111 }
    112 };
    113 obj.BeforeSendCallFunc = function () {
    114 $("#content").html("读数据加载中...");
    115 };
    116 obj.CompleteCallFunc = function () {
    117 };
    118 ajaxManage.QAjax(obj);
    119 }
    120 });
    121 }
    122 }


     

    青华木园
  • 相关阅读:
    2018.12.17-dtoj-1174-出现或反转后出现在每个字符串中的最长子串
    2018.12.17-dtoj-1173-每个字符串至少出现两次且不重叠的最长子串
    2018.12.17-dtoj-1171-长度不小于k的公共子串的个数
    2018.12.17-dtoj-1170-最长公共子串
    2018.12.17-dtoj-1168-连续重复子串
    欧拉四面体公式
    超级密码 hdu1226 bfs
    糖果大战 hdu1204
    Find The Multiple (poj1426 一个好的做法)
    Life Forms (poj3294 后缀数组求 不小于k个字符串中的最长子串)
  • 原文地址:https://www.cnblogs.com/accpfriend/p/2355802.html
Copyright © 2020-2023  润新知