在 gridview 的 onrowcommand  事件中 如何获取所点击的行的索引值啊 protected void Button1_Click(object sender,  GridViewPageEventArgs e)
    {
         
        Response.Redirect("dailyDetail1.aspx?did=" + this.dbgDaily.Rows[e.].Cells[1].Text);
    }     

解决方案 »

  1.   

    DataGird的ItemCommand中可以e.Item获取……然后GirdView中没有e.Row……这是我至今喜欢用DataGird不喜欢用GirdView的原因之一……
    你可以设置DataKeys来获取内容……
      

  2.   


          int index = Convert.ToInt32(e.CommandArgument);
      

  3.   

    只有通过设置Button的CommandArgument才能给后台传入索引值
      

  4.   

    前台你这样写:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            onselectedindexchanging="GridView1_SelectedIndexChanging">
            <Columns>
                <asp:BoundField HeaderText="第一列" />
                <asp:BoundField HeaderText="第二列" />
                <asp:CommandField ShowSelectButton="True" />
            </Columns>    
        </asp:GridView>后台这样写:protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int index = e.NewSelectedIndex;
        }
      

  5.   


    protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
     Response.Redirect("dailyDetail1.aspx?did=" + this.GridView1.Rows[e.NewSelectedIndex].Cells[1].Text); 
    }
      

  6.   

      可是我想激发的事件并不是  GridView1_SelectedIndexChanging  
      

  7.   

    Control lnk = e.CommandSource as Control;
    GridViewRow row = lnk.NamingContainer as GridViewRow;row.RowIndex就是索引值
      

  8.   

       protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "btd")
            {
                int intRow = int.Parse(e.CommandArgument.ToString()); //获取当前所在行
               // string strUniqueID = grdSignedAss.DataKeys[intRow].Value.ToString();
            }    }