ASP.NET GridView分页+排序+自定义样式【常规功能比JS插件使用简单】
来源:互联网 发布:万能数据恢复破解补丁 编辑:程序博客网 时间:2024/06/04 00:25
现在基本都是在用一些前台table框架,做一些分页加排序处理
脑子里面就记得用repeat 处理完table然后调用第三方tablejs插件做分页和排序。
感觉这样能够做到想要的效果。
但是用第三方插件的话,样式定制比较差,不能实现自己想要的样式。
然后再给人整理代码的时候,突然发现好久没用的GridView和 PageNavigator两个net控件 都很牛逼啊
完全定制各种风格
下面是一直到新网站的效果图
/// <summary>
/// 保存ViewState
/// </summary>
/// <param name="viewState">ViewState</param>
public void SaveToViewState(StateBag viewState)
{
viewState["RequestParams"] = this;
}
}
#endregion
}
#endregion
protected void ButtonSave_Click(object sender, EventArgs e)
{
//BizCommonApplicationAdapter.Instance.RegisterBizCommon(this.TextBoxKey.Text, this.TextBoxName.Text, this.TextBoxSecret.Text);
}
protected void ddlSelect_SelectedIndexChanged(object sender, EventArgs e)
{
//string s = this.HiddenFieldID.Value;
//int id = Convert.ToInt32(s);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//this.TextBox1.Text = b.ApplicationKey;
////this.TextBox3.Text = b.TableName;
}
protected void ButtonRelate_Click(object sender, EventArgs e)
{
//string s = this.HiddenFieldID.Value;
//int id = Convert.ToInt32(s);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//BizCommonTableDefine td = new BizCommonTableDefine();
//td.ApplicationKey = b.ApplicationKey;
////td.GroupCode = this.ddlCodeSelect.SelectedValue;
//td.TableName = b.TableName;
//BizCommonTableDefineAdapter.Instance.Insert(td);
脑子里面就记得用repeat 处理完table然后调用第三方tablejs插件做分页和排序。
感觉这样能够做到想要的效果。
但是用第三方插件的话,样式定制比较差,不能实现自己想要的样式。
然后再给人整理代码的时候,突然发现好久没用的GridView和 PageNavigator两个net控件 都很牛逼啊
完全定制各种风格
下面是一直到新网站的效果图
排序和分页
图标
相关gridview的属性
<asp:GridView ID="gridView" runat="server" AutoGenerateColumns="False" CssClass="table table-bordered table-hover" GridLines="None" AllowPaging="True" PageSize="10" AllowSorting="True" Width="100%" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" DataKeyNames="ID" OnRowDataBound="gridView_RowDataBound" OnRowCommand="GridViewList_RowCommand" EmptyDataRowStyle-VerticalAlign="Middle" EmptyDataRowStyle-HorizontalAlign="Center" EmptyDataText="对不起,没有找到相关记录!" OnSorting="gridView_Sorting">
<PagerSettings Visible="False" />
<HeaderStyle CssClass="table-thead-tr table-thead-tr-bg" />
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" SortExpression="ID">
<HeaderStyle Width="10%" />
</asp:BoundField>
<asp:BoundField HeaderText="应用标识" DataField="ApplicationKey" SortExpression="ApplicationKey">
<HeaderStyle Width="23%" />
</asp:BoundField>
<asp:BoundField HeaderText="应用名称" DataField="ApplicationName" SortExpression="ApplicationName">
<HeaderStyle Width="30%" />
</asp:BoundField>
<asp:BoundField HeaderText="密匙" DataField="EncryptKey" SortExpression="EncryptKey">
<HeaderStyle Width="16%" />
</asp:BoundField>
<asp:TemplateField HeaderText="关联关系">
<ItemTemplate>
<asp:LinkButton ID="lbtnNameRelate" runat="server" CommandName="Relate" Text="查看"></asp:LinkButton>
</ItemTemplate>
<HeaderStyle Width="8%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
<uc1:PageNavigator ID="PageNavigator1" runat="server" ExportToExcel="false" OnPageIndexChanging="gridView_PageIndexChanging" />
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<a id="CogButton" runat="server" class="green" href="#" style="padding: 3px; text-decoration: none;">
<i class="icon-cog bigger-130"></i>
</a>
<a id="DeleteButton" runat="server" class="red" href="#" style="padding: 3px; text-decoration: none;">
<i class="icon-trash bigger-130"></i>
</a>
</ItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
cs后台代码
using System;
using System.Text;
using PRMPortal.Portal.Base;
using PRMPortal.Framework.Tools;
using System.Web.UI.WebControls;
using PRMPortal.Portal.Utilities;
using System.Collections.Generic;
using PRMPortal.Framework.Common;
using PRMPortal.PRMClassLibrary.Common;
//using PRMPortal.PRMClassLibrary.DataObject;
//using PRMPortal.PRMClassLibrary.DataAccess;
//using PRMClassLibrary.Business.DataObjects;
using Capital.iWorkflow.PortalLibrary.DataObject;
using Capital.iWorkflow.PortalLibrary.DataAccess;
using System.Web.UI;
using Capital.iWorkflow.Framework.DataAccess;
<asp:GridView ID="gridView" runat="server" AutoGenerateColumns="False" CssClass="table table-bordered table-hover" GridLines="None" AllowPaging="True" PageSize="10" AllowSorting="True" Width="100%" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" DataKeyNames="ID" OnRowDataBound="gridView_RowDataBound" OnRowCommand="GridViewList_RowCommand" EmptyDataRowStyle-VerticalAlign="Middle" EmptyDataRowStyle-HorizontalAlign="Center" EmptyDataText="对不起,没有找到相关记录!" OnSorting="gridView_Sorting">
<PagerSettings Visible="False" />
<HeaderStyle CssClass="table-thead-tr table-thead-tr-bg" />
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" SortExpression="ID">
<HeaderStyle Width="10%" />
</asp:BoundField>
<asp:BoundField HeaderText="应用标识" DataField="ApplicationKey" SortExpression="ApplicationKey">
<HeaderStyle Width="23%" />
</asp:BoundField>
<asp:BoundField HeaderText="应用名称" DataField="ApplicationName" SortExpression="ApplicationName">
<HeaderStyle Width="30%" />
</asp:BoundField>
<asp:BoundField HeaderText="密匙" DataField="EncryptKey" SortExpression="EncryptKey">
<HeaderStyle Width="16%" />
</asp:BoundField>
<asp:TemplateField HeaderText="关联关系">
<ItemTemplate>
<asp:LinkButton ID="lbtnNameRelate" runat="server" CommandName="Relate" Text="查看"></asp:LinkButton>
</ItemTemplate>
<HeaderStyle Width="8%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
<uc1:PageNavigator ID="PageNavigator1" runat="server" ExportToExcel="false" OnPageIndexChanging="gridView_PageIndexChanging" />
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<a id="CogButton" runat="server" class="green" href="#" style="padding: 3px; text-decoration: none;">
<i class="icon-cog bigger-130"></i>
</a>
<a id="DeleteButton" runat="server" class="red" href="#" style="padding: 3px; text-decoration: none;">
<i class="icon-trash bigger-130"></i>
</a>
</ItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
cs后台代码
using System;
using System.Text;
using PRMPortal.Portal.Base;
using PRMPortal.Framework.Tools;
using System.Web.UI.WebControls;
using PRMPortal.Portal.Utilities;
using System.Collections.Generic;
using PRMPortal.Framework.Common;
using PRMPortal.PRMClassLibrary.Common;
//using PRMPortal.PRMClassLibrary.DataObject;
//using PRMPortal.PRMClassLibrary.DataAccess;
//using PRMClassLibrary.Business.DataObjects;
using Capital.iWorkflow.PortalLibrary.DataObject;
using Capital.iWorkflow.PortalLibrary.DataAccess;
using System.Web.UI;
using Capital.iWorkflow.Framework.DataAccess;
namespace PRMPortal.Pages.AppReg
{
public partial class AppList : System.Web.UI.Page
{
private string _SortExpression = string.Empty;
/// <summary>
/// 页面参数
/// </summary>
private RequestParams _Params;
public string SortExpression { get; set; }
#region 页面参数属性及存取方法定义
{
public partial class AppList : System.Web.UI.Page
{
private string _SortExpression = string.Empty;
/// <summary>
/// 页面参数
/// </summary>
private RequestParams _Params;
public string SortExpression { get; set; }
#region 页面参数属性及存取方法定义
[Serializable]
public class RequestParams
{
/// <summary>
/// 获取页面参数
/// </summary>
/// <param name="viewState">ViewState</param>
public static RequestParams GetParams(StateBag viewState)
{
RequestParams p = new RequestParams();
public class RequestParams
{
/// <summary>
/// 获取页面参数
/// </summary>
/// <param name="viewState">ViewState</param>
public static RequestParams GetParams(StateBag viewState)
{
RequestParams p = new RequestParams();
if (viewState != null && viewState["RequestParams"] != null)
{
p = (RequestParams)viewState["RequestParams"];
}
{
p = (RequestParams)viewState["RequestParams"];
}
return p;
}
/// <summary>
/// 排序表达式属性
/// </summary>
public string SortExpression
{
get
{
return _SortExpression;
}
set
{
_SortExpression = value;
}
}private string _SortExpression = "";
}
/// <summary>
/// 排序表达式属性
/// </summary>
public string SortExpression
{
get
{
return _SortExpression;
}
set
{
_SortExpression = value;
}
}private string _SortExpression = "";
/// <summary>
/// 排序升降序属性
/// </summary>
public string SortDirection
{
get
{
return _SortDirection;
}
set
{
_SortDirection = value;
}
}private string _SortDirection = "";
public string key
{
get
{
return _key;
}
set
{
_key = value;
}
}private string _key = "";
public string name
{
get
{
return _name;
}
set
{
_name = value;
}
}private string _name = "";
/// 排序升降序属性
/// </summary>
public string SortDirection
{
get
{
return _SortDirection;
}
set
{
_SortDirection = value;
}
}private string _SortDirection = "";
public string key
{
get
{
return _key;
}
set
{
_key = value;
}
}private string _key = "";
public string name
{
get
{
return _name;
}
set
{
_name = value;
}
}private string _name = "";
/// <summary>
/// 保存ViewState
/// </summary>
/// <param name="viewState">ViewState</param>
public void SaveToViewState(StateBag viewState)
{
viewState["RequestParams"] = this;
}
}
#endregion
#region 生命周期事件
protected override void OnInit(EventArgs e)
{
this.PageNavigator1.PageIndexChanging += new GridViewPageEventHandler(gridView_PageIndexChanging);
protected override void OnInit(EventArgs e)
{
this.PageNavigator1.PageIndexChanging += new GridViewPageEventHandler(gridView_PageIndexChanging);
base.OnInit(e);
}
}
protected void Page_Load(object sender, EventArgs e)
{
_Params = RequestParams.GetParams(this.ViewState);
if (!this.IsPostBack)
{
//this.ddlCodeSelect.Items.Clear();
{
_Params = RequestParams.GetParams(this.ViewState);
if (!this.IsPostBack)
{
//this.ddlCodeSelect.Items.Clear();
//List<ProcessGroupCode> l = ProcessGroupCodeAdapter.Instance.GetProcessGroupCodes();
////Dictionary<string, KeyValuePair<string, int>> d = Capital.iWorkflow.PortalLibrary.Common.Define.GetProcessGroupCodeDictionary();
////List<string> l = new List<string>();
////foreach (string key in d.Keys)
////{
//// l.Add(key);
////}
////Dictionary<string, KeyValuePair<string, int>> d = Capital.iWorkflow.PortalLibrary.Common.Define.GetProcessGroupCodeDictionary();
////List<string> l = new List<string>();
////foreach (string key in d.Keys)
////{
//// l.Add(key);
////}
//this.ddlCodeSelect.DataTextField = "GroupCode";
////this.ddlCodeSelect.DataValueField = "ID";
//this.ddlCodeSelect.DataSource = l;
////this.ddlCodeSelect.DataValueField = "ID";
//this.ddlCodeSelect.DataSource = l;
//this.ddlCodeSelect.DataBind();
}
}
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
{
base.OnPreRender(e);
BindGridData();
_Params.SaveToViewState(ViewState);
}
#endregion
_Params.SaveToViewState(ViewState);
}
#endregion
private void BindGridData()
{
string keyStr = this.txtKey.Text.Trim();
List<BizCommonApplication> list = BizCommonApplicationAdapter.Instance.GetBizCommonApplicationList(GetOrderByCondition(), _Params.key, _Params.name);
this.gridView.DataSource = list;
gridView.DataBind();
PageNavigator1.Initialize(gridView, list.Count);
{
string keyStr = this.txtKey.Text.Trim();
List<BizCommonApplication> list = BizCommonApplicationAdapter.Instance.GetBizCommonApplicationList(GetOrderByCondition(), _Params.key, _Params.name);
this.gridView.DataSource = list;
gridView.DataBind();
PageNavigator1.Initialize(gridView, list.Count);
if (list.Count == 0)
{
gridView.DataSource = null;
gridView.DataBind();
PageNavigator1.Visible = false;
}
else
PageNavigator1.Visible = true;
}
/// <summary>
/// 获取排序条件
/// </summary>
/// <returns>排序条件</returns>
private OrderByCondition GetOrderByCondition()
{
OrderByCondition oc = new OrderByCondition();
{
gridView.DataSource = null;
gridView.DataBind();
PageNavigator1.Visible = false;
}
else
PageNavigator1.Visible = true;
}
/// <summary>
/// 获取排序条件
/// </summary>
/// <returns>排序条件</returns>
private OrderByCondition GetOrderByCondition()
{
OrderByCondition oc = new OrderByCondition();
if (_Params.SortExpression.Trim().Length > 0
&& _Params.SortDirection.Trim().Length > 0)
{
oc.AppendCondition(_Params.SortExpression, _Params.SortDirection);
}
&& _Params.SortDirection.Trim().Length > 0)
{
oc.AppendCondition(_Params.SortExpression, _Params.SortDirection);
}
return oc;
}
protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.DataRow:
CalMessageStrBtnCell(e);
break;
default:
break;
}
}
}
protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.DataRow:
CalMessageStrBtnCell(e);
break;
default:
break;
}
}
private void CalMessageStrBtnCell(System.Web.UI.WebControls.GridViewRowEventArgs e)
{
//LinkButton link = (LinkButton)e.Row.FindControl("lbtnNameRelate");
//int ID = Convert.ToInt32(gridView.DataKeys[e.Row.RowIndex]["ID"].ToString());
{
//LinkButton link = (LinkButton)e.Row.FindControl("lbtnNameRelate");
//int ID = Convert.ToInt32(gridView.DataKeys[e.Row.RowIndex]["ID"].ToString());
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(ID);
//string openwindow = string.Format("javascript:showDiv2('" + ID + "','"+b.ApplicationKey+"','"+b.TableName+"');return false;");
//link.Attributes.Add("OnClientClick", openwindow);
}
protected void GridViewList_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Relate":
//GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
protected void GridViewList_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Relate":
//GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
//int indexRow = row.RowIndex;
//int id = Convert.ToInt32(((GridView)sender).DataKeys[indexRow].Values["ID"]);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//List<BizCommonTableDefine> list = BizCommonTableDefineAdapter.Instance.GetBizCommonTableDefineList(b.ApplicationKey);
//this.gridView1.DataSource = list;
//gridView1.DataBind();
//string openwindow = string.Format("<script type='text/javascript'>showDiv2('" + id + "','" + b.ApplicationKey + "','" + b.TableName + "');</script>");
////Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('OK');");
////LiteralJS.Text = "<script>" + openwindow + "</script>";
//ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", openwindow, false);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//List<BizCommonTableDefine> list = BizCommonTableDefineAdapter.Instance.GetBizCommonTableDefineList(b.ApplicationKey);
//this.gridView1.DataSource = list;
//gridView1.DataBind();
//string openwindow = string.Format("<script type='text/javascript'>showDiv2('" + id + "','" + b.ApplicationKey + "','" + b.TableName + "');</script>");
////Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('OK');");
////LiteralJS.Text = "<script>" + openwindow + "</script>";
//ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", openwindow, false);
break;
default:
break;
}
}
protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gridView.PageIndex = e.NewPageIndex;
}
default:
break;
}
}
protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gridView.PageIndex = e.NewPageIndex;
}
protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (_Params.SortDirection == "ASC")
_Params.SortDirection = "DESC";
else
_Params.SortDirection = "ASC";
{
if (_Params.SortDirection == "ASC")
_Params.SortDirection = "DESC";
else
_Params.SortDirection = "ASC";
_Params.SortExpression = e.SortExpression;
SortExpression = e.SortExpression;
_SortExpression = e.SortExpression;
ResetPageIndex();
}
/// <summary>
/// 重置DataGrid页索引为第一页
/// </summary>
private void ResetPageIndex()
{
gridView.PageIndex = 0;
}
#region 查询事件
/// <summary>
/// 查询事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ButtonQuery_Click(object sender, EventArgs e)
{
_Params.key = this.txtKey.Text;
_Params.name = this.txtName.Text;
SortExpression = e.SortExpression;
_SortExpression = e.SortExpression;
ResetPageIndex();
}
/// <summary>
/// 重置DataGrid页索引为第一页
/// </summary>
private void ResetPageIndex()
{
gridView.PageIndex = 0;
}
#region 查询事件
/// <summary>
/// 查询事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ButtonQuery_Click(object sender, EventArgs e)
{
_Params.key = this.txtKey.Text;
_Params.name = this.txtName.Text;
}
#endregion
protected void ButtonSave_Click(object sender, EventArgs e)
{
//BizCommonApplicationAdapter.Instance.RegisterBizCommon(this.TextBoxKey.Text, this.TextBoxName.Text, this.TextBoxSecret.Text);
}
protected void ddlSelect_SelectedIndexChanged(object sender, EventArgs e)
{
//string s = this.HiddenFieldID.Value;
//int id = Convert.ToInt32(s);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//this.TextBox1.Text = b.ApplicationKey;
////this.TextBox3.Text = b.TableName;
}
protected void ButtonRelate_Click(object sender, EventArgs e)
{
//string s = this.HiddenFieldID.Value;
//int id = Convert.ToInt32(s);
//BizCommonApplication b = BizCommonApplicationAdapter.Instance.Load(id);
//BizCommonTableDefine td = new BizCommonTableDefine();
//td.ApplicationKey = b.ApplicationKey;
////td.GroupCode = this.ddlCodeSelect.SelectedValue;
//td.TableName = b.TableName;
//BizCommonTableDefineAdapter.Instance.Insert(td);
//List<BizCommonTableDefine> list = BizCommonTableDefineAdapter.Instance.GetBizCommonTableDefineList(b.ApplicationKey);
//this.gridView1.DataSource = list;
//gridView1.DataBind();
//this.TextBox1.Text = b.ApplicationKey;
////this.TextBox3.Text = b.TableName;
}
}
}
//this.gridView1.DataSource = list;
//gridView1.DataBind();
//this.TextBox1.Text = b.ApplicationKey;
////this.TextBox3.Text = b.TableName;
}
}
}
1 0
- ASP.NET GridView分页+排序+自定义样式【常规功能比JS插件使用简单】
- asp.net gridview 自定义分页
- [ASP.NET] 自定义GridView分页
- Asp.net学习笔记----使用GridView+ObjectDataSource进行自定义分页排序
- ASP.NET GridView的Bootstrap分页样式
- ASP.NET GridView的Bootstrap分页样式
- GridView分页的实现以及自定义分页样式功能实例
- 【转】ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.net-Gridview的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- ASP.NET-GridView的分页功能
- OC语言笔记(八):OC代理、协议和NSDate
- 如何快速选择适合你的NiceLabel版本
- 读H.265/HEVC编码笔记(一)
- LoadRunner 中文乱码问题(request 和Response)
- lucene(二) 索引的创建、增删改查
- ASP.NET GridView分页+排序+自定义样式【常规功能比JS插件使用简单】
- C#.net开发 List与DataTable相互转换
- 文件I/O
- 258. Add Digits
- loadrunner 修改参数行数限制
- Qt利用setStyleSheet设置样式
- JAVA 调用中通快递查询物流轨迹接口
- 通过Loadrunner 录制ISO设备的HTTP请求
- 魔兽技术分析