我在GRIDVIEW里定义了一个
<Columns>
<asp:TemplateField>
      <ItemTemplate>
         <asp:Button ID="编辑" runat="server" OnClick="编辑_Click" Text="编辑" />
      </ItemTemplate>
</asp:TemplateField>
</Columns>protected void 编辑_Click(object sender, EventArgs e)
{
Button BT = sender as Button;
BT.Text = //this.GridView1.Rows[GridView1.SelectedRow.RowIndex].Cells[1].ToString();
//这里怎么获取当前行的索引?
}

解决方案 »

  1.   

    换个问题哈,那位大哥来帮哈~~GridView1.DataSource = ds;
    //这里如何让GridView1.Columns[1].Visible = false;
                GridView1.Columns[2].Visible = false;
    GridView1.DataBind();???
      

  2.   

    当前行的索引:this.GridView1.Rows[GridView1.SelectedRow.RowIndex+this.GridView1.PageIndex * this.GridView1.PageSize]["ID"];
    至于第二个问题,你完全可以在前台绑定,不显示的字段就不绑定 如果你非要在后台控制 那么
           HyperLinkField df1 = new HyperLinkField();
            HyperLinkField df2 = new HyperLinkField();
            BoundField bd1 = new BoundField();
            BoundField bd2 = new BoundField();
            df1.HeaderText = ds.Tables[0].Columns["标题"].ColumnName;
            df2.HeaderText = ds.Tables[0].Columns["作者"].ColumnName;
            bd1.HeaderText = ds.Tables[0].Columns["昵称"].ColumnName;
            bd2.HeaderText = ds.Tables[0].Columns["最近回复"].ColumnName;        df1.DataTextField = ds.Tables[0].Columns["标题"].ColumnName;
            df2.DataTextField = ds.Tables[0].Columns["作者"].ColumnName;
            bd1.DataField = ds.Tables[0].Columns["昵称"].ColumnName;
            bd2.DataField = ds.Tables[0].Columns["最近回复"].ColumnName;        df1.DataNavigateUrlFields = new string[] { ds.Tables[0].Columns["TID"].ColumnName };
            df1.NavigateUrl = "~/ShowTopic.aspx?top_id={0}" + "&grp_id=" + GroupID.ToString();
            df1.DataNavigateUrlFormatString = "~/ShowTopic.aspx?top_id={0}" + "&grp_id=" + GroupID.ToString();        df2.DataNavigateUrlFields = new string[] { ds.Tables[0].Columns["作者"].ColumnName };
            df2.NavigateUrl = "~/UserInfo.aspx?uid={0}";
            df2.DataNavigateUrlFormatString = "~/UserInfo.aspx?uid={0}";        this.opertop1.Columns.Add(df1);
            this.opertop1.Columns.Add(df2);
            this.opertop1.Columns.Add(bd1);
            this.opertop1.Columns.Add(bd2);        this.opertop1.DataBind();
    这是我以前写的,同样可以
      

  3.   

    换个问题哈,那位大哥来帮哈~~GridView1.DataSource = ds;
    //这里如何让GridView1.Columns[1].Visible = false;
                GridView1.Columns[2].Visible = false;
    GridView1.DataBind();???
    ---------------------------------------------------------------
    你是不是想把GridView中的某些列给隐藏掉?
    你那样是隐藏不掉的
    你可以在GridView的行绑定事件中处理
    在每一行绑定后,找到需要隐藏的那个字段,把那个字段隐藏就可以
      

  4.   

    GridView1.DataSource = ds;
    //这里如何让GridView1.Columns[1].Visible = false;
    GridView1.DataBind();
       protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
    //GridView1.Columns[1].Visible = false;
    //这样子也不行哦。有办法吗?
    //ds数据列不时固定的,但前3列都是一样的,要隐藏掉。如何做啊?
        }
      

  5.   

    自己解决了
    GridView1_RowCreated