asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页

时间:2022-09-17 19:19:47

效果图:

asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页

功能简介:可使用上下键选中行,选中后点击修改,textbox获得gridview中的代码的数据。对你有帮助的话,请记得要点击“好文要顶”哦!!!不懂的,请留言。废话不多说了,贴码如下:

  1. <head runat="server"
  2.  <title>GridView分頁</title> 
  3.  <script type="text/javascript"
  4.   var currentRowId = 0; 
  5.   var styleName = ""
  6.   function SelectRow(ev, strGvName) { 
  7.    var e = window.event || ev; 
  8.    var keyCode = -1; 
  9.    if (e.which == null
  10.     keyCode = e.keyCode; // IE  
  11.    else 
  12.     if (e.which > 0) 
  13.     keyCode = e.which; // All others  
  14.    if (keyCode == 40) 
  15.     MarkRow(currentRowId + 1, strGvName); 
  16.    if (keyCode == 38) { 
  17.     MarkRow(currentRowId - 1, strGvName); 
  18.    } 
  19.   
  20.    document.getElementById("NUM").value = currentRowId; 
  21.   } 
  22.   function MarkRow(rowId, strGvName) { 
  23.    var Grid = document.getElementById(strGvName); 
  24.    var rowCount = Grid.rows.length; 
  25.    if (document.getElementById(strGvName + rowId) == null
  26.     return
  27.    if (rowId == rowCount) { 
  28.     return
  29.    } 
  30.    if (document.getElementById(strGvName + currentRowId) != null
  31.     document.getElementById(strGvName + currentRowId).style.backgroundColor = styleName; 
  32.    currentRowId = rowId; 
  33.    styleName = document.getElementById(strGvName + rowId).style.backgroundColor; 
  34.    document.getElementById(strGvName + rowId).style.backgroundColor = 'red'
  35.    var obj = document.getElementById(strGvName); 
  36.    obj.rows[rowId].cells[0].focus(); 
  37.    document.getElementById("NUM").value = currentRowId; 
  38.   
  39.   } 
  40.  </script> 
  41.   
  42.  <style type="text/css"
  43.   .hidden 
  44.   { 
  45.    display: none; 
  46.   } 
  47.  </style> 
  48. </head> 

核心代码:

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5. using System.Web.UI; 
  6. using System.Web.UI.WebControls; 
  7. using System.Data.SqlClient;//請添加以下命名空間 
  8. using System.Data; 
  9. using System.Drawing; 
  10.   
  11. public partial class _Default : System.Web.UI.Page 
  12.  SqlConnection con = new SqlConnection("Server=SERVER\\xxx;Database=xxxx;User ID=xx;Pwd=xx;"); 
  13.  private int _i = 0;//定義變量 ,查詢 Grid設定樣式有用到 
  14.  protected void Page_Load(object sender, EventArgs e) 
  15.  { 
  16.   if (!Page.IsPostBack) 
  17.   { 
  18.    getBind(); 
  19.   } 
  20.  } 
  21.  protected void getBind() 
  22.  { 
  23.   string str = "select * from im01"
  24.   DataSet ds = new DataSet(); 
  25.   SqlDataAdapter da = new SqlDataAdapter(str, con); 
  26.   da.Fill(ds); 
  27.   DataTable dt = ds.Tables[0]; 
  28.   gvData.DataSource = dt; 
  29.   gvData.DataBind(); 
  30.  } 
  31.  protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e) 
  32.  { 
  33.   
  34.  } 
  35.  protected void gvData_RowCreated(object sender, GridViewRowEventArgs e) 
  36.  { 
  37.   if (e.Row.RowType == DataControlRowType.Pager) 
  38.   { 
  39.    Label label_Index = new Label(); 
  40.    LinkButton Button_IndexFirst = new LinkButton(); 
  41.    LinkButton Button_IndexLast = new LinkButton(); 
  42.    LinkButton Button_IndexNext = new LinkButton(); 
  43.    LinkButton Button_IndexPrevious = new LinkButton(); 
  44.   
  45.    Button_IndexFirst.Text = "第一頁 "
  46.    Button_IndexFirst.CommandName = "first"
  47.    Button_IndexFirst.ForeColor = Color.Blue; 
  48.    Button_IndexFirst.Click += new EventHandler(PageButtonClick); 
  49.   
  50.    Button_IndexNext.Text = " 下一頁 "
  51.    Button_IndexNext.CommandName = "next"
  52.    Button_IndexNext.ForeColor = Color.Blue; 
  53.   
  54.    Button_IndexNext.Click += new EventHandler(PageButtonClick); 
  55.   
  56.    Button_IndexPrevious.Text = "前一頁 "
  57.    Button_IndexPrevious.CommandName = "previous"
  58.    Button_IndexPrevious.ForeColor = Color.Blue; 
  59.    Button_IndexPrevious.Click += new EventHandler(PageButtonClick); 
  60.   
  61.    Button_IndexLast.Text = "最末頁 "
  62.    Button_IndexLast.CommandName = "last"
  63.    Button_IndexLast.ForeColor = Color.Blue; 
  64.    Button_IndexLast.Click += new EventHandler(PageButtonClick); 
  65.   
  66.    e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(0, (Button_IndexFirst)); 
  67.    e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(1, (Button_IndexPrevious)); 
  68.   
  69.    int controlTmp = e.Row.Controls[0].Controls[0].Controls[0].Controls.Count - 1; 
  70.    e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexNext); 
  71.    e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexLast); 
  72.   } 
  73.  } 
  74.  protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e) 
  75.  { 
  76.   if (e.Row.RowType == DataControlRowType.DataRow) 
  77.   { 
  78.    //设置悬浮鼠标指针形状为"小手"  
  79.    e.Row.Attributes["style"] = "Cursor:hand"
  80.   } 
  81.   string strGvName = "gvData"
  82.   e.Row.Attributes.Add("id", strGvName + _i.ToString()); 
  83.   e.Row.Attributes.Add("onKeyDown""SelectRow(event,'" + strGvName + "');"); 
  84.   e.Row.Attributes.Add("onClick""MarkRow(" + _i.ToString() + ",'" + strGvName + "');"); 
  85.   e.Row.Attributes.Add("tabindex""0"); 
  86.   _i++; 
  87.  } 
  88.  protected void PageButtonClick(object sender, EventArgs e) 
  89.  { 
  90.   LinkButton clickedButton = ((LinkButton)sender); 
  91.   if (clickedButton.CommandName == "first"
  92.   { 
  93.    gvData.PageIndex = 0; 
  94.   } 
  95.   else if (clickedButton.CommandName == "next"
  96.   { 
  97.    if (gvData.PageIndex < gvData.PageCount - 1) 
  98.    { 
  99.     gvData.PageIndex += 1; 
  100.    } 
  101.   } 
  102.   else if (clickedButton.CommandName == "previous"
  103.   { 
  104.    if (gvData.PageIndex >= 1) 
  105.    { 
  106.     gvData.PageIndex -= 1; 
  107.    } 
  108.   } 
  109.   else if (clickedButton.CommandName == "last"
  110.   { 
  111.    gvData.PageIndex = gvData.PageCount - 1; 
  112.   } 
  113.   getBind(); 
  114.  }  
  115.  //修改 
  116.  protected void btnUpd_Click(object sender, EventArgs e) 
  117.  { 
  118.   int intNum = 0; 
  119.   if (this.NUM.Text == "" || this.NUM.Text == "0"
  120.   { 
  121.    Response.Write("<script type=\"text/javascript\">alert('請先查詢並選擇一筆資料!')</script>"); 
  122.    return
  123.   } 
  124.   else 
  125.   { 
  126.    intNum = Convert.ToInt16(this.NUM.Text) - 1; 
  127.    tbValue.Text = this.gvData.Rows[intNum].Cells[1].Text.ToString(); 
  128.   } 
  129.  }