如何使用自动生成的列从GridView的特定单元格中获取值

本文关键字:单元格 获取 GridView 何使用 自动生成 | 更新日期: 2023-09-27 17:49:27

gridview与数据库绑定,其中有20列。现在我要做的是在单击Edit按钮时选择其中一些列的值。请帮助我,因为我不知道如何。

  <asp:GridView ID="gv_Data" runat = "server" Font-Size="XX-Small"BackColor="#DEBA84" 
        BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
        CellSpacing="2" onrowcommand="gv_Data_RowCommand">
    <Columns>
    <asp:ButtonField ButtonType="Button"
    CommandName = "EditRow"
    Text="Edit"/>
    </Columns>

        <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
        <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
        <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#FFF1D4" />
        <SortedAscendingHeaderStyle BackColor="#B95C30" />
        <SortedDescendingCellStyle BackColor="#F1E5CE" />
        <SortedDescendingHeaderStyle BackColor="#93451F" />

    </asp:GridView>

如何使用自动生成的列从GridView的特定单元格中获取值

你可以在编辑按钮事件中使用foreach循环

foreach(GridViewRow gvr in gv_Data){
   TextBox t = gvr.Cells[0].FindControl("TextField1") as TextBox;
   t.Text = "abc";
   DropDownList ddl = gvr.Cells[1].FindControl("DropDownList1") as DropDownList;
   ddl.SelectedValue = 100;
}

您必须首先确定编辑按钮被单击的行。

您将不得不使用RowCommand事件来处理所有这些,这是您如何在单击编辑时识别行。

GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);

现在您有了行,像这样获取行索引,这将帮助您获得特定行的列详细信息:

int RowIndex = gvr.RowIndex; 

有了行索引之后,现在是时候使用该索引和下面的语句获取列的详细信息了:

string cId = row.Cells[1].Text;

您可以使用索引或括号之间的列名来获取您想要的列数据。这里,row是我们之前在这个答案中得到的GridViewRow

这应该给你一个关于如何进行的想法。