为什么当我单击网格视图中的任何一行时,第一行的索引都会被选中

本文关键字:一行 索引 单击 网格 视图 为什么 任何一 | 更新日期: 2023-09-27 18:19:49

当我在任何一行中单击EDIT时,为什么它会选择第一行的索引?

Gridiview:内的编辑按钮

<asp:ButtonField CommandName="cmdEdit" HeaderText="Edit" ImageUrl="~/assets/global/images/shopping/edit.png" ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="20px" />

EDIT:背后的代码

protected void grdviewLandInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
    try
    {              
         int Index = Convert.ToInt32(e.CommandArgument);
         Int32 LandInfoID =  Convert.ToInt32(grdviewLandInfo.DataKeys[Index].Value);
         short UserID = Convert.ToInt16(Session["UserID"]);
         short LandTypeID = Convert.ToInt16(grdviewLandInfo.Rows[Index].Cells[6].Text);

为什么当我单击网格视图中的任何一行时,第一行的索引都会被选中

在commandArgument属性中添加按钮字段,如下所示。

<asp:ButtonField CommandName="cmdEdit" HeaderText="Edit" ImageUrl="~/assets/global/images/shopping/edit.png" CommandArgument='<%# ((GridViewRow) Container).RowIndex %>' ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="20px" />

试试这个:

protected void grdviewLandInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if(e.CommandName == "cmdEdit")
   {
    try
    {  
       ...

试试这个。。。

if (e.CommandName.Equals("cmdEdit"))
{
        GridViewRow row = (GridViewRow)((Control)e.CommandSource).Parent.Parent;
    Int32 LandInfoID =  Convert.ToInt32(grdviewLandInfo.DataKeys[row.RowIndex].Value);
}

希望这能帮助。。。