有一个GridView如下:<asp:GridView ID="gvmessboard" runat="server" AutoGenerateColumns='False' 
        Style="margin-top: 0px" DataKeyNames="Theme,Body" onrowediting="gvmessboard_RowEditing">
        <Columns>
            <asp:BoundField HeaderText="模板名称" DataField="Theme"></asp:BoundField>
            <asp:BoundField HeaderText="模板内容" DataField="Body"></asp:BoundField>
            <asp:TemplateField HeaderText="操作">
                <ItemTemplate>
                    <asp:LinkButton ID="lkbupdate" runat="server" CommandName="Edit">修改</asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>显示如下: 模板名  模板内容  操作
 模板1    模板aa   修改模板名:Text
模板内容: Text现在想要当我点击Gridview中的修改时,它把GridView中的一条数据取出来显示在下面各自的文本框里?
请问如何取出来?用C#.

解决方案 »

  1.   

    可以通过rowcommand行命令来做,也可以在修改那个绑定一个数据的唯一标识,然后通过这个标识找到这个对象对应的其他的值,然后进行操作
      

  2.   

    FindControl("Label1") as Label
      

  3.   

    一般用个模板列,里面放一个控件,控件的COMMAND属性设置为select
    然后再gridview的 SelectedIndexChanging事件中写代码
     protected void GridView分支_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
            {
                this.TextBox编号二.Text = this.GridView分支.Rows[e.NewSelectedIndex].Cells[0].Text.ToString();
                this.TextBox分支.Text = this.GridView分支.Rows[e.NewSelectedIndex].Cells[1].Text.ToString();
         }
    不知道你看明白没
      

  4.   


    通过FindControl() 去找你模版的控件强转得到值  
      

  5.   

     protected void btnDelete_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow gvr in GridView1.Rows)
            {
                if ((gvr.FindControl("CheckBox1") as CheckBox).Checked)
                {
                }
            }
        }
      

  6.   

     foreach (GridViewRow gvr in gv.Rows)
            {
                (gvr.Cells[1].FindControl("Add") as CheckBox).Checked = cb.Checked;
                (gvr.Cells[2].FindControl("Update") as CheckBox).Checked = cb.Checked;
                (gvr.Cells[3].FindControl("Delete") as CheckBox).Checked = cb.Checked;
                (gvr.Cells[4].FindControl("Query") as CheckBox).Checked = cb.Checked;
            }
      

  7.   


    我想的是把gridview里的值取到下面的文本框里去.
      

  8.   

    你把你模板列中lkbupdate的CommandName改为select,修改的字不用改
    再下面的事件中写下面的代码
    protected void gvmessboard_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 
            { 
                this.TextBox一.Text = this.gvmessboard.Rows[e.NewSelectedIndex].Cells[0].Text.ToString(); 
                this.TextBox二.Text = this.gvmessboard.Rows[e.NewSelectedIndex].Cells[1].Text.ToString(); 
        } 
    这样就可以了
    0就是指第一列模板名称
    1指第二列模板内容
    很明白了吧
      

  9.   

    补充:
    你把你模板列中lkbupdate的CommandName改为Select
      

  10.   

    那如果在rowcommmand中如何实现呢?