Я не могу редактировать в коде ничего, что находится между itemtemplate - PullRequest
0 голосов
/ 12 ноября 2018

Мне нужно получить доступ к коду за метками, которые находятся внутри ПУНКТА ИЗДЕЛИЯ, я даже не могу применить RUNAT = SERVER и поставить идентификатор !! на самом деле, ничего, что находится внутри ДЕТАЛЯ, к которому я могу получить доступ в коде! Мне нужен PRA listview + item template для отображения некоторой информации из моей базы данных, но мне также нужно добавить некоторые метки и манипулировать ими, как мне это сделать?

МОЙ КОД:

            <div class="row">
            <div class="col-lg-12">

                <asp:ListView ID="lv_post" runat="server">

                    <ItemTemplate runat="server">
                        <div class="row">
                            <div class="col-lg-12">
                                <h2 class="titulo"><b><%# Eval("titulo")%></b></h2>
                            </div>

                            <div class="col-lg-12">
                                <div class="data" style="margin-bottom: 1px;"><i class="far fa-calendar-alt"></i><%# Eval("data") %> <i class="fas fa-user"></i><%# Eval("autor") %></div>
                            </div>

                            <div class="col-lg-12" style="margin-bottom: 8px;">
                                <asp:Label ID="lbl_estrela1" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela2" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela3" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela4" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela5" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                            </div>

                            <div class="col-lg-12">
                                <p class="conteudo">"<%# Eval("conteudo") %>"</p>
                            </div>

                        </div>
                        <%--<%# Eval("id_categoria_fk") %>--%>
                        <hr />

                    </ItemTemplate>

                </asp:ListView>

            </div>
        </div>

Я не могу получить доступ к этому коду:

                                <div class="col-lg-12" style="margin-bottom: 8px;">
                                <asp:Label ID="lbl_estrela1" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela2" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela3" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela4" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                                <asp:Label ID="lbl_estrela5" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
                            </div>

если я выхожу из пункта, я могу, но мне нужна эта информация в середине информации, которая появляется только в шаблоне элемента.

1 Ответ

0 голосов
/ 15 ноября 2018

ListView содержит список предметов. ItemTemplate описывает макет каждого этих элементов. Таким образом, Label элементы управления внутри шаблона существуют для каждого элемента списка.

Вот рабочий пример:

ASPX Page

<head runat="server">
    <title></title>
    <style>
        .color2 {
            color: #d40000;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ListView ID="lv_post" runat="server" ItemType="String">
                <ItemTemplate>
                    <asp:Label ID="lbl_estrela" runat="server" Text="<%# Item %>"></asp:Label>
                    <br />
                </ItemTemplate>
            </asp:ListView>
        </div>
    </form>
</body>

Код позади

public string[] data = { "Data 1", "Data 2", "Data 3", "Data 4" };

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lv_post.DataSource = data;
        lv_post.DataBind();

        var lbl_estrela1 = lv_post.Items[1].FindControl("lbl_estrela") as Label;
        lbl_estrela1.CssClass = "color2";

        var lbl_estrela3 = lv_post.Items[3].FindControl("lbl_estrela") as Label;
        lbl_estrela3.CssClass = "color2";
    }
}

В приведенном выше примере стиль css для второй и четвертой меток установлен на color2. Обратите внимание, использование коллекции Items.

Дополнительно

Чтобы лучше понять, взгляните на источник страницы, сгенерированный при загрузке страницы.

<div>            
    <span id="lv_post_lbl_estrela_0">Data 1</span>
    <br />

    <span id="lv_post_lbl_estrela_1" class="color2">Data 2</span>
    <br />

    <span id="lv_post_lbl_estrela_2">Data 3</span>
    <br />

    <span id="lv_post_lbl_estrela_3" class="color2">Data 4</span>
    <br />                
</div>
...