- <asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize="5" DataKeyNames="Id,Title,LogContext"
- AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand" OnPageIndexChanging="GridView1_PageIndexChanging">
- <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="首页" PreviousPageText="上一页" NextPageText="下一页" LastPageText="尾页" />
- <Columns>
- <asp:BoundField DataField="Id" HeaderText="ID" />
- <asp:BoundField DataField="Title" HeaderText="标题" />
- <asp:BoundField DataField="LogContext" HeaderText="内容" />
- <asp:ButtonField CommandName="add" Text="添加" />
- </Columns>
- </asp:GridView>
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Collections.Generic;
- using System.Data.OleDb;
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- DataToBind();
- }
- }
- private void DataToBind()
- {
- GridView1.DataSource = GridViewSource();
- GridView1.DataBind();
- }
- private List<Log> GridViewSource()
- {
- List<Log> logs = new List<Log>();
- for (int i = 1; i < 21; i++)
- {
- Log log = new Log();
- log.Id = i;
- log.Title = "Title" + i;
- log.LogContext = "LogContext" + i;
- logs.Add(log);
- }
- return logs;
- }
- public class Log
- {
- private int id;
- public int Id
- {
- get { return id; }
- set { id = value; }
- }
- private string title;
- public string Title
- {
- get { return title; }
- set { title = value; }
- }
- private string logContext;
- public string LogContext
- {
- get { return logContext; }
- set { logContext = value; }
- }
- }
- protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
- {
- if (e.CommandName == "add")
- {
- //e.CommandArgument 为当前页选定的行,下标从 0 开始
- //GridView1.DataKeys[index].Values[2].ToString()
- //为当前选中的行所对应的在 DataKeyNames="Id,Title,LogContext" 的值。
- int index = Convert.ToInt32(e.CommandArgument);
- string now = GridView1.DataKeys[index].Values[1].ToString(); //此时输出的是选中行的 Title 的值
- Response.Write(index + " | " + now);
- }
- }
- protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
- {
- GridView1.PageIndex = e.NewPageIndex;
- DataToBind();
- }
- }