在asp.net 2.0中,GridView的模版列中加入按钮,触发按钮事件后,如何获取该行的某个值?

解决方案 »

  1.   

    <asp:TemplateField>
        <ItemTemplate>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        </ItemTemplate>
    </asp:TemplateField>
    =============================================
    protected void Button1_Click(object sender, EventArgs e)
    {
        Button btn = sender as Button;
        GridViewRow row = btn.Parent.Parent as GridViewRow;
        string a = row.Cells[0].ToString();//获得第一个单元格的值
        string b = this.GridView1.DataKeys[row.DataItemIndex].Values[0];//获得DataKeys的值
    }
      

  2.   

    或者:<asp:TemplateField>
        <ItemTemplate>
            <asp:Button ID="Button1" runat="server" CommandName="MyCommand" Text="Button" />
        </ItemTemplate>
    </asp:TemplateField>
    ===============================================
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "MyCommand")
        {
            Button btn = e.CommandSource as Button;
            GridViewRow row = btn.Parent.Parent as GridViewRow;
            string a = row.Cells[0].ToString();//获得第一个单元格的值
            string b = this.GridView1.DataKeys[row.DataItemIndex].Values[0];//获得DataKeys的值
        }
    }
      

  3.   

    首先将该列加入datakey然后用gridview1.datakeys[gridview1.selectedIndex].value来获得,
    如果gridview的datakey里放入了多个字段的话,用gridview1.datakeys[gridview1.selectedIndex].values来返加一个集合,然后一个个地取出其中的值就行了
      

  4.   

    string a = row.Cells[0].ToString();//获得第一个单元格的值这个是获取的第一个单元歌的值吗?怎么不能是int类型的?
      

  5.   

    string a = row.Cells[0].ToString();//获得第一个单元格的值怎么获取的是System.Web.UI.WebControls.DataControlFieldCell'