如何从datagridview C#

时间:2017-04-25 14:46:13

标签: c# html asp.net datagridview datagrid

我很难弄清楚如何从数据网格中的标签中获取值。 (Gridview)我想得到<asp:Label ID="Label4" runat="server" Text='<%# Eval("IDAfspraken") %>'></asp:Label>的价值。我以为我可以说int id = Label4.Text,但他不知道Label4。我的问题是如何获得这个价值?我需要主键来从我的数据网格中删除行。欢迎任何帮助,谢谢你提前。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" Width="1000px" HorizontalAlign="Center">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:TemplateField HeaderText="IDAfspraken">
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Eval("IDAfspraken") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Afspraak">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Afspraak") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Uitleg">
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("Uitleg") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Categorie">
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("IDCategorieën") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Verwijderen">
                    <ItemTemplate>
                        <asp:Button ID="Button2" runat="server" Text="Verwijder" ForeColor="Red" Font-Bold="true" OnClick="Button2_Click"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#E9E7E2" />
            <SortedAscendingHeaderStyle BackColor="#506C8C" />
            <SortedDescendingCellStyle BackColor="#FFFDF8" />
            <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
        </asp:GridView>

3 个答案:

答案 0 :(得分:0)

试试这个,

GridViewRow row = (GridViewRow)(((Control)sender).NamingContainer);
int index = row.RowIndex;
Label lbltext= (Label)GridView1.Rows[index].FindControl("Label4");
string s= lbltext.Text;

答案 1 :(得分:0)

datagridView包含一个名为DataKeyNames的属性,为此目的设置了datakeyNames属性,您必须通过将其传递给gridview来设置它的值。

答案 2 :(得分:0)

我有这个工作:

_controller = new Controller();

        string id="";

        foreach (GridViewRow row in GridView1.Rows)
        {
            id = ((Label)row.FindControl("Label4")).Text;

        }

        _controller.VerwijderRecordTblAfspraken(Convert.ToInt32(id));