如题。放在GridView中的menu控件,触发MenuItemClick事件时,如何取得GridView所点的行号?

解决方案 »

  1.   

    没这样放过,帮你顶一下
    感觉应该是CurrentRow
      

  2.   

    MenuItemClick事件的参数是MenuEventArgs,所以压根就没有CurrentRow这属性。
    现在感觉是,虽然它放在模板列里,但感觉好象它和GridView扯不上关系似的。
      

  3.   

    使用 NamingContainer 属性
      

  4.   

    试验了下 MenuItemEventArgs 几个属性没办法使用 CommandSource CommandArgments ...
    NamingContainer 也没办法获取正在考虑其他比较 hack 的方式....
      

  5.   

    在MenuItemClick事件处理中,sender获取出触发的menu控件,然后通过:Control myCtrl = sender as Control;do{
        myCtrl=myCtrl.Parent;
    }while(!(myCtrl is GridViewRow);
    通过这种方式获取出当前行的对象。
      

  6.   

    COOL!// 竟然忘了还有一个 sender    protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        {      
            GridViewRow gvr = (sender as Menu).NamingContainer as GridViewRow;
            if (gvr != null)
            {
                ///
            }
        }
      

  7.   

        protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        {
            Response.Write(((sender as Menu).NamingContainer as GridViewRow).RowIndex);
        }
      

  8.   

    感谢drummery的解决方案非常的好现在只需要判断好退出条件就可以了。已经能取到模板列中的值了。感谢。但是do while不得行啊?我只需要取那一列?马上,我研究好了,就过来给分。
      

  9.   

    加一列checkbox,循环判断checkbox是否选中.