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

类别:Asp 点击:0 评论:0 推荐:

<%@ 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='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://com.8s8s.com/it/it8810.htm