本帖最后由 andesen 于 2009-10-17 14:00:33 编辑

解决方案 »

  1.   

    在CancelCommand事件里面这样就可以获取你点击行的值变量名=(e.Item.FindControl("控件Id") as Label).Text
      

  2.   

    http://topic.csdn.net/u/20091017/09/1f48d3ae-21bb-4112-9873-dc7e3b9de8df.html类似这样处理就行了
      

  3.   

    后台绑定事件中增加Label的点击事件,将另外一个Label的客户端id获取,通过js获取其值就行了
      

  4.   

    不好意思这个是DataList里面的
      

  5.   

    gridview里有个叫做RowComand事件,用它吧如果你要取得的列里的那个控件是在模板列里的,可以用:string description = ((TextBox)this.grid.Rows[e.RowIndex].FindControl("descriptionTextBox")).Text;取出,当然,上面我的是TextBox控件,你自己转为相应的lable控件如果不是放在自定义模板里的,则用:string name = ((TextBox)this.grid.Rows[e.RowIndex].Cells[0].Controls[0]).Text;//当然,这个代码不是在RowComand事件中的,但是,在RowComand事件中会有自己的参数,也就是e或者object sender你自己用好这两个参数,找到当前行记录的行索引,可以根据VS的智能感知能力提示功能,一个个地试如果e参数无效,就用object sender,你先把它直接ToString()显示出来看下是什么控件对象,然后再强制把它转换为相应的对象就可以了,比如GriVewRow gvr=(GriVewRow) sender;
    string name = ((TextBox)this.grid.Rows[gvr.RowIndex].Cells[0].Controls[0]).Text;
      

  6.   

    GriVewRow gvr=(GriVewRow) sender;
    sender那个事件的sender是GridViewRow?
      

  7.   

    RowCommand的那个sender是个GridView对象
      

  8.   

    O_O这样子啊,那这样吧,你在GridView控件里另外放一列点击按钮,比如名为Btton1 的Btton按钮
    用户点击这个按钮时,执行你要的操作。人增加下面事件:protected void Gv_news_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            //这个事件是在用户点击某一行按钮时触发的
            //根据触按钮的参数取得当前记录行所在的索引号
            int rowIndex = int.Parse(e.CommandArgument);
            //下面想怎么操作是你自己的事了
            
        }
        protected void Gv_news_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //这个事件呢,是在每一行记录生成时马上触发的,所以你有多少行记录,这个事件就会执行多少次
            //给命令按钮(点击事件的那个按钮,名字自己改为自己的)设计触发参数为当前行索引号
            
            ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandArgument=e.Row.RowIndex.ToString();
        }
      

  9.   

    O_O!!!protected void Gv_news_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            int rowIndex = int.Parse(e.CommandName); 
            //下面想怎么操作是你自己的事了 
            
        } 
        protected void Gv_news_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            
            ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandName=e.Row.RowIndex.ToString(); 
        } 
      

  10.   

         ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandArgument=e.Row.RowIndex.ToString(); 此处报错
      

  11.   

    楼主,换为这个代码,奶奶的,都快下班了,你居然还没解决
    protected void Gv_news_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            int rowIndex = int.Parse(e.CommandName); 
            //下面想怎么操作是你自己的事了 
            
        } 
        protected void Gv_news_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            
            ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandName=e.Row.RowIndex.ToString(); 
        } 
      

  12.   

    绑定时   ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandName=e.Row.RowIndex.ToString(); 索引超出范围。必须为非负值并小于集合大小。
      

  13.   

     protected void Gv_news_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType==DataControlRowType.DataRow)
            ((Button)this.grid.Rows[e.Row.RowIndex].FindControl("Button1")).CommandName=e.Row.RowIndex.ToString(); 
    //我亲自试了下,原来我忘了写判断了,控件除了生成记录行外,还包括头部和脚部,晕死,好了这回,应该没什么问题了
        } 
      

  14.   

    日,下班前再次确认已是无误的代码:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Button bt = (Button)e.Row.FindControl("Button1");
                bt.CommandName = e.Row.RowIndex.ToString();
            }    }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            Response.Write(e.CommandName);
        }