GridView中的特定标签值

时间:2019-04-06 10:32:33

标签: c# asp.net

我正在尝试从ASP.NET GridView中删除行,并且出于演示目的,我现在正在尝试从行中检索名称。在ItemTemplate的{​​{1}}中,我包含了GridView,它具有ID和要显示的名称。最后,在Label中添加了Button控件以删除特定的行,并尝试了以下操作:

GridView

在后面的代码中,我对<asp:GridView ID="grdData" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField HeaderText="Id"> <ItemTemplate> <asp:Label ID="lblId" runat="server" Text='<%# Eval("ProductId") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Button ID="btnShow" runat="server" Text="Button" OnClick="btnShow_Click" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:Label ID="lblMsg" runat="server"></asp:Label> 进行了循环,以获取各个值,例如,按以下方式表示行名:

GridView

但是不幸的是,每次单击任何行按钮时,我都会得到姓氏,这是我正在尝试的屏幕截图:

ASP.NET GridView

每当我单击任意按钮时,它都会每次显示冰淇淋-的姓氏。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

<asp:GridView ID="grdData" runat="server" AutoGenerateColumns="false">
            <Columns>
                 <asp:TemplateField HeaderText="Id">
                    <ItemTemplate>
                        <asp:Label ID="lblId" runat="server" Text='<%# Eval("ProductId") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                  <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Button ID="btnShow" runat="server" Text="Button" OnClick="btnShow_Click" CommandArgument='<%# Eval("Name") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
            </Columns>
    </asp:GridView>

    <asp:Label ID="lblMsg" runat="server"></asp:Label>

    protected void btnShow_Click(object sender, EventArgs e)
    {    
        lblMsg.Text = (sender as Button).CommandArgument;
    }