我是想做一个DataGrid的分页控件,需要实现以下功能:
    根据DataGrid的ID值,设置该DataGrid的:
1、自定义DataGrid的分页工具条;
2、设置DataGrid的样式;
3、设置DataGrid的排序功能及排序图标
4、分页后的数据绑定;
我现在是无法解决问题3和4.
解決了還另外有200分相送
http://community.csdn.net/Expert/topic/4485/4485930.xml?temp=.8135797
(100分)
http://community.csdn.net/Expert/topic/4485/4485930.xml?temp=.2662622(50分)
http://community.csdn.net/Expert/topic/4482/4482433.xml?temp=.9314234(50分)以上功能是我看过WWWFIND(牧月天涯) 的专栏
http://blog.csdn.net/WWWFIND/archive/2005/05/03/371417.aspx
才想这么做的,其控件只需绑定要设置的DataGrid控件,就可完成所有的排序,分页,样式,及数据源的绑定.
其使用例子:
.aspx
<%@ Page language="c#" Codebehind="Web_GridPager.aspx.cs" AutoEventWireup="false" Inherits="WebApplication3.Web_GridPger" %>
<%@ Register TagPrefix="xpdragon" Namespace="DragonWebControls" Assembly="DragonControl" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Web_GridPger</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<center><FONT face="宋体"><asp:datagrid id="DataGrid1" runat="server" DataKeyField="ID" Font-Size="10pt" AutoGenerateColumns="False"
AllowPaging="True" AllowSorting="True" BorderWidth="2px" BorderColor="#6595D6" Height="72px" Width="578px"
PageSize="15">
<HeaderStyle HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="&lt;Img src='Image/Select.gif' style='BORDER-STYLE:none'&gt;" HeaderImageUrl="Image/Head.gif"
CommandName="Select">
<HeaderStyle HorizontalAlign="Center" Width="45px"></HeaderStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="货品编码">
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="MC" SortExpression="MC" ReadOnly="True" HeaderText="货品名称">
<HeaderStyle Width="30%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="FLNBID" SortExpression="FLNBID" HeaderText="分类">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="DW" SortExpression="DW" HeaderText="单位"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid><XPDRAGON:GRIDPAGER id="GridPager1" runat="server" Height="16px" Width="652px" PageSize="10" ClientNavigation="True"
NavigationURL="Web_GridPager.aspx" NavigationAction="单击" SelectColumnSelectImage="Image/Current.gif" SelectColumnImage="Image/Select.gif"
SelectColumnHeadImage="Image/Head.gif" DataGrid="DataGrid1" ButtonCount="6"></XPDRAGON:GRIDPAGER><asp:panel id="Panel1" runat="server" Font-Size="9pt" Height="160px" Width="552px">
<P>属性挺多久不一一说明了,大家对属性分类排序试验一下。<BR>
主要功能:分页,排序,客户端单击或双击跳转到相关页面,控制DataGrid的外观,也就是你拖出一个DataGrid后,设置好数据、字段项目,外观和分页就可以由该控件完成,这样可以实现一个类似外观模版的功能。</P>
<P>通过DataGrid属性和DataGrid绑定。</P>
<P>&nbsp;</P>
</asp:panel></FONT></center>
</form>
</body>
</HTML>.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication3
{
public class Web_GridPger : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected DragonWebControls.GridPager GridPager1;
protected System.Web.UI.WebControls.Panel Panel1;
DataSet DS=new DataSet();
private void Page_Load(object sender, System.EventArgs e)
{if (this.Request["ID"]!=null)
{
Response.Write("你的货品ID:"+this.Request["ID"]);
Response.End();
}
DS.ReadXml(this.Request.PhysicalApplicationPath+"Data.xml");
DataGrid1.DataSource=DS;
this.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}private void InitializeComponent()
{    
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
 DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.DataBind();
}
}
}