效果图:

功能简介:可使用上下键选中行,选中后点击修改,textbox获得gridview中的代码的数据。对你有帮助的话,请记得要点击“好文要顶”哦!!!不懂的,请留言。废话不多说了,贴码如下:
<head runat="server"> <title>GridView分頁</title> <script type="text/javascript">var currentRowId = 0;var styleName = "";function SelectRow(ev, strGvName) { var e = window.event || ev; var keyCode = -1; if (e.which == null)keyCode = e.keyCode; // IEelseif (e.which > 0)keyCode = e.which; // All othersif (keyCode == 40)MarkRow(currentRowId + 1, strGvName); if (keyCode == 38) {MarkRow(currentRowId - 1, strGvName); } document.getElementById("NUM").value = currentRowId;}function MarkRow(rowId, strGvName) { var Grid = document.getElementById(strGvName); var rowCount = Grid.rows.length; if (document.getElementById(strGvName + rowId) == null)return; if (rowId == rowCount) {return; } if (document.getElementById(strGvName + currentRowId) != null)document.getElementById(strGvName + currentRowId).style.backgroundColor = styleName; currentRowId = rowId; styleName = document.getElementById(strGvName + rowId).style.backgroundColor; document.getElementById(strGvName + rowId).style.backgroundColor = "red"; var obj = document.getElementById(strGvName); obj.rows[rowId].cells[0].focus(); document.getElementById("NUM").value = currentRowId;} </script> <style type="text/css">.hidden{ display: none;} </style></head>核心代码:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;//請添加以下命名空間using System.Data;using System.Drawing;public partial class _Default : System.Web.UI.Page{ SqlConnection con = new SqlConnection("Server=SERVER\xxx;Database=xxxx;User ID=xx;Pwd=xx;"); private int _i = 0;//定義變量 ,查詢 Grid設定樣式有用到 protected void Page_Load(object sender, EventArgs e) {if (!Page.IsPostBack){ getBind();} } protected void getBind() {string str = "select * from im01";DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(str, con);da.Fill(ds);DataTable dt = ds.Tables[0];gvData.DataSource = dt;gvData.DataBind(); } protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e) { } protected void gvData_RowCreated(object sender, GridViewRowEventArgs e) {if (e.Row.RowType == DataControlRowType.Pager){ Label label_Index = new Label(); LinkButton Button_IndexFirst = new LinkButton(); LinkButton Button_IndexLast = new LinkButton(); LinkButton Button_IndexNext = new LinkButton(); LinkButton Button_IndexPrevious = new LinkButton(); Button_IndexFirst.Text = "第一頁 "; Button_IndexFirst.CommandName = "first"; Button_IndexFirst.ForeColor = Color.Blue; Button_IndexFirst.Click += new EventHandler(PageButtonClick); Button_IndexNext.Text = " 下一頁 "; Button_IndexNext.CommandName = "next"; Button_IndexNext.ForeColor = Color.Blue; Button_IndexNext.Click += new EventHandler(PageButtonClick); Button_IndexPrevious.Text = "前一頁 "; Button_IndexPrevious.CommandName = "previous"; Button_IndexPrevious.ForeColor = Color.Blue; Button_IndexPrevious.Click += new EventHandler(PageButtonClick); Button_IndexLast.Text = "最末頁 "; Button_IndexLast.CommandName = "last"; Button_IndexLast.ForeColor = Color.Blue; Button_IndexLast.Click += new EventHandler(PageButtonClick); e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(0, (Button_IndexFirst)); e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(1, (Button_IndexPrevious)); int controlTmp = e.Row.Controls[0].Controls[0].Controls[0].Controls.Count - 1; e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexNext); e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexLast);} } protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e) {if (e.Row.RowType == DataControlRowType.DataRow){ //设置悬浮鼠标指针形状为"小手"e.Row.Attributes["style"] = "Cursor:hand";}string strGvName = "gvData";e.Row.Attributes.Add("id", strGvName + _i.ToString());e.Row.Attributes.Add("onKeyDown", "SelectRow(event,"" + strGvName + "");");e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ","" + strGvName + "");");e.Row.Attributes.Add("tabindex", "0");_i++; } protected void PageButtonClick(object sender, EventArgs e) {LinkButton clickedButton = ((LinkButton)sender);if (clickedButton.CommandName == "first"){ gvData.PageIndex = 0;}else if (clickedButton.CommandName == "next"){ if (gvData.PageIndex < gvData.PageCount - 1) {gvData.PageIndex += 1; }}else if (clickedButton.CommandName == "previous"){ if (gvData.PageIndex >= 1) {gvData.PageIndex -= 1; }}else if (clickedButton.CommandName == "last"){ gvData.PageIndex = gvData.PageCount - 1;}getBind(); }//修改 protected void btnUpd_Click(object sender, EventArgs e) {int intNum = 0;if (this.NUM.Text == "" || this.NUM.Text == "0"){ Response.Write("<script type="text/javascript">alert("請先查詢並選擇一筆資料!")</script>"); return;}else{ intNum = Convert.ToInt16(this.NUM.Text) - 1; tbValue.Text = this.gvData.Rows[intNum].Cells[1].Text.ToString();} }}