前台代码:
<asp:TemplateField HeaderText="记录">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" ImageUrl="~/img/text.png" CommandName="conect" runat="server" CommandArgument='<%#Container.DataItemIndex %>'
/>
</ItemTemplate></asp:TemplateField>
后台代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "conect")
{
ImageButton bt = (ImageButton)e.CommandSource;
GridViewRow row = (GridViewRow)bt.Parent.Parent;
//int rowindex = Convert.ToInt32(e.CommandArgument);
HttpContext.Current.Session["name"] = GridView1.Rows[row.RowIndex].Cells[1].Text;
HttpContext.Current.Session["num"] = GridView1.Rows[row.RowIndex].Cells[3].Text;
HttpContext.Current.Session["phone"] = GridView1.Rows[row.RowIndex].Cells[2].Text;
HttpContext.Current.Session["lfID"] = GridView1.DataKeys[row.RowIndex]["lfID"];
HttpContext.Current.Session["qishu"] = GridView1.Rows[row.RowIndex].Cells[7].Text;
HttpContext.Current.Session["mName"] = GridView1.Rows[row.RowIndex].Cells[11].Text;
this.Response.Redirect("addLoadsC.aspx", true);
}
}
之前用int rowindex = Convert.ToInt32(e.CommandArgument);来获得行号,但是翻页之后会累加行号。如一页10行,那第二页的第一行的行号会变成10(0开始),所以用GridView1.Rows[row.RowIndex].Cells[1].Text;取值的话就会提示超出索引。