Как получить выделенный текст в метке из ListView? - PullRequest
1 голос
/ 13 апреля 2019

Это мой код переднего плана для моего продукта в ListView.

<div class="col-md-3">
    <div class="card shadow">
        <div class="inner">
            <div class="title">
                <asp:Label ID="lblprodId" runat="server" Text='<%# Eval("flavourID") %>' Style="display: normal"></asp:Label>

                <h3><%# Eval("flavourName") %></h3>
            </div>
            <img class="prodImg" src="pizza/<%# Eval("flavourImg") %>" alt="Card image cap">
            <center><div class="btn"><div><asp:Button ID="btnShowOrder" runat="server" Text="Order This" CssClass="button" OnClick="btnShowOrder_Click"/></div></div></center>
        </div>
    </div>
</div>

А это мой файл .cs.

protected void btnShowOrder_Click(object sender, EventArgs e)
{
    foreach (ListViewItem item in prodList.Items)
    {
        int index = 0;
        Label lblprodId = prodList.Items[index].FindControl("lblprodId") as Label;
        Session["prodID"] = lblprodId.Text.ToString();
    }
    //Session["prodID"] = lblprodId.Text;
}

Сейчас я могуполучить идентификатор продукта только 1-го элемента.Даже если я нажимаю на другой продукт, идентификатор, который отображается в моей корзине, является первым идентификатором продукта

1 Ответ

0 голосов
/ 13 апреля 2019

Вам не нужен цикл foreach. Вы можете использовать NamingContainer, чтобы получить правильное значение.

protected void btnShowOrder_Click(object sender, EventArgs e)
{
    //cast the sender back to a button
    Button btn = sender as Button;

    //get the current item from the listview namingcontainer
    ListViewItem item = btn.NamingContainer as ListViewItem;

    //use findcontrol to locate the label in that item
    Label lbl = item.FindControl("lblprodId") as Label;

    //show result in label outside listview
    Label1.Text = lbl.Text;
}

ASPX

<asp:ListView ID="ListView1" runat="server">
    <ItemTemplate>

        <asp:Label ID="lblprodId" runat="server" Text='<%# Eval("flavourID") %>'></asp:Label>

        <asp:Button ID="btnShowOrder" runat="server" Text="Button" OnClick="btnShowOrder_Click"/>

    </ItemTemplate>
</asp:ListView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...