获取GridView中RowCommand的当前索引行

获取GridView中RowCommand的当前索引行
前台添加一模版列,里面添加一个Button
<asp:TemplateField HeaderText="测试">
      
<ItemTemplate>
           
<asp:Button ID="Button1" CommandName="btn" runat="server" Style="position: relative" Text="Button" />
      
</ItemTemplate>
</asp:TemplateField>


后台

protected void gv_Company_RowCommand(object sender, GridViewCommandEventArgs e){
        
if (e.CommandName == "btn"){
             i
nt index = Convert.ToInt32(e.CommandArgument);
             DataKey key
= this.gv_Company.DataKeys[index];
            
string str = key.Value.ToString();
         }

     }


    
//行数据绑定
    protected void gv_Company_RowDataBound(object sender, GridViewRowEventArgs e){
        
if (e.Row.RowType == DataControlRowType.DataRow){
            Button bt
= new Button();
             bt
= (Button)e.Row.Cells[6].FindControl("Button1");
             bt.CommandArgument
= e.Row.RowIndex.ToString();
         }

     }



     那么,如果是在GridView里已经设置了LinkButton为事件处理按钮,将通过以下方法获取索引
protected void gv_Company_RowCommand(object sender, GridViewCommandEventArgs e){
        
if (e.CommandName == "btn"){        
               GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent));
               object result = (object)gv_Company.DataKeys[drv.RowIndex][int];//int为DataKeys位置
         }

     }


posted @ 2008-10-16 16:52  千年寒冰  阅读(630)  评论(2编辑  收藏  举报