典型Datagrid分页、排序、删除代码

发表于:2007-06-30来源:作者:点击数: 标签:
%@ Page language=c# Codebehind=default.aspx.cs AutoEventWireup=false Inherits=datagrid.WebForm1 % !DOCTYPE HTML PUBLIC -//W3C//D TD HTML 4.0 Transitional//EN HTML HEAD titleWebForm1/title meta content=Microsoft Visual Studio .NET 7.1 name=G
<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="datagrid.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</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">
<script>
window.resizeTo(screen.width,screen.height-30);
</script>
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 56px" runat="server"
HorizontalAlign="Center" DataKeyField="au_id" PageSize="3" AllowPaging="True" Width="408px"
AutoGenerateColumns="False" AllowSorting="True">
<Columns>
<asp:BoundColumn DataField="au_id" SortExpression="au_id" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="city" SortExpression="city" ReadOnly="True" HeaderText="城市"></asp:BoundColumn>
<asp:TemplateColumn SortExpression="au_id" HeaderText="操作">
<ItemTemplate>
<asp:LinkButton runat="server" ID="delbutton" Text="删除" CommandName="Delete" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False" PageButtonCount="6"></PagerStyle>
</asp:datagrid><asp:label id="Label1" style="Z-INDEX: 106; LEFT: 312px; POSITION: absolute; TOP: 24px" runat="server"></asp:label><asp:linkbutton id="LBtfir" style="Z-INDEX: 105; LEFT: 72px; POSITION: absolute; TOP: 24px" runat="server">首页</asp:linkbutton><asp:linkbutton id="LBtlast" style="Z-INDEX: 104; LEFT: 256px; POSITION: absolute; TOP: 24px" runat="server">尾页</asp:linkbutton><asp:linkbutton id="LBtpre" style="Z-INDEX: 103; LEFT: 192px; POSITION: absolute; TOP: 24px" runat="server">上一页</asp:linkbutton><asp:linkbutton id="LBtnex" style="Z-INDEX: 102; LEFT: 120px; POSITION: absolute; TOP: 24px" runat="server">下一页</asp:linkbutton></form>
</body>
</HTML>
代码

default.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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 datagrid
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.LinkButton LBtnex;
protected System.Web.UI.WebControls.LinkButton LBtpre;
protected System.Web.UI.WebControls.LinkButton LBtlast;
protected System.Web.UI.WebControls.LinkButton LBtfir;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
public string SortField;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
databind();
}
}
public void databind()
{
SqlConnection con = new SqlConnection("server=it003;database=pubs;uid=sa;pwd=");
con.Open();
string sql="select * from authors";
SqlDataAdapter ada = new SqlDataAdapter(sql,con);
DataSet ds = new DataSet();
ada.Fill(ds,"temp");
ds.Tables["temp"].DefaultView.Sort=SortField;
DataGrid1.DataSource=ds.Tables["temp"].DefaultView;
DataGrid1.DataBind();
ada.Dispose();
con.Close();
Label1.Text="共"+ds.Tables["temp"].DefaultView.Count.ToString()+"条记录,"+DataGrid1.PageCount.ToString()+"页,第"+(DataGrid1.CurrentPageIndex+1).ToString()+"页,本页"+DataGrid1.Items.Count.ToString()+"条记录";
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand_1);
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound_1);
this.LBtfir.Click += new System.EventHandler(this.LBtfir_Click);
this.LBtlast.Click += new System.EventHandler(this.LBtlast_Click);
this.LBtpre.Click += new System.EventHandler(this.LBtpre_Click);
this.LBtnex.Click += new System.EventHandler(this.LBtnex_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
databind();
}

private void LBtnex_Click(object sender, System.EventArgs e)
{
if(DataGrid1.CurrentPageIndex<DataGrid1.PageCount-1)
{
DataGrid1.CurrentPageIndex++;
databind();
}
}

private void LBtpre_Click(object sender, System.EventArgs e)
{
if(DataGrid1.CurrentPageIndex>0)
{
DataGrid1.CurrentPageIndex--;
databind();
}
}

private void LBtfir_Click(object sender, System.EventArgs e)
{
DataGrid1.CurrentPageIndex=0;
databind();
}

private void LBtlast_Click(object sender, System.EventArgs e)
{
DataGrid1.CurrentPageIndex=DataGrid1.PageCount-1;
databind();
}

private void DataGrid1_DeleteCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try{

string ID = (string)DataGrid1.DataKeys[(int) e.Item.ItemIndex];
string sql="delete from authors where au_id=@#"+Convert.ToString(ID)+"@#";
SqlConnection con = new SqlConnection("server=it003;database=pubs;uid=sa;pwd=");
con.Open();
SqlCommand com=new SqlCommand(sql,con);
com.ExecuteNonQuery();
com.Dispose();
con.Close();
if (DataGrid1.Items.Count == 1 && DataGrid1.CurrentPageIndex > 0)
{
DataGrid1.CurrentPageIndex--;
}
databind();
}
catch(Exception ex)
{
Response.Write("<script>alert(@#"+ex.Message+"@#)</script>");
//Page.RegisterStartupScript("","<script>alert(@#"+ex.Message+"@#)</script>");

}

}

private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex<0) return;
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor=@#clearcase/" target="_blank" >cccccc@#");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");
LinkButton lbtnDel = (LinkButton)e.Item.FindControl("delbutton");
string ID = (string)DataGrid1.DataKeys[(int) e.Item.ItemIndex];
lbtnDel.Attributes.Add("onclick", "return confirm(@#您真的要删除"+ID+ " 行吗?@#);");

}
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
SortField=(string)e.SortExpression;
databind();
}
}
}



原文转自:http://www.ltesting.net