#html #asp.net #bootstrap-4
#HTML #asp.net #bootstrap-4
Вопрос:
На моей странице у меня есть карточка примера и DataList.
Функция свертывания отлично работает на моей карточке примера, но я не могу заставить ее работать на моих реальных картах.
Вот код.
<div class="resultadosEspecialidades">
<asp:DataList ID="DataList_CredenciadosEs" OnItemDataBound="DataList2_ItemDataBound" runat="server" Style="width: 100%;">
<ItemTemplate>
<div class="card">
<div class="card-body">
<h3 class="card-title"><%#Eval("NomeExibicao")%></h3>
<h6 class="card-subtitle mb-2 text-muted">Especialidade(s):</h6>
<p class="card-text"><%#Eval("BairrosExibicao") %></p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#<%#Eval("PkCredenciado")%>">
Mais informações
</button>
</div>
<div class="collapse card-body show" id="<%#Eval("PkCredenciado")%>">
<h5>Endereços</h5>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<div class="card-body">
<h6><%# DataBinder.Eval(Container.DataItem, "Logradouro") %>, <%# DataBinder.Eval(Container.DataItem, "Numero") %>, <%# DataBinder.Eval(Container.DataItem, "Complemento") %>, <%# DataBinder.Eval(Container.DataItem, "Bairro") %> - <%# DataBinder.Eval(Container.DataItem, "Municipio") %> - <%# DataBinder.Eval(Container.DataItem, "CEP") %></h6>
<div>
<h6>(<%# DataBinder.Eval(Container.DataItem, "Telefones[0].DDD") %>)<%# DataBinder.Eval(Container.DataItem, "Telefones[0].Numero") %></h6>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</ItemTemplate>
</asp:DataList>
</div>
И вот пример карты, которая находится на той же странице
<div class="resultadosEspecialidades">
<asp:DataList ID="DataList_CredenciadosEs" OnItemDataBound="DataList2_ItemDataBound" runat="server" Style="width: 100%;">
<ItemTemplate>
<div class="card">
<div class="card-body">
<h3 class="card-title"><%#Eval("NomeExibicao")%></h3>
<h6 class="card-subtitle mb-2 text-muted">Especialidade(s):</h6>
<p class="card-text"><%#Eval("BairrosExibicao") %></p>
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#<%#Eval("PkCredenciado")%>">
Mais informações
</button>
</div>
<div class="collapse card-body show" id="<%#Eval("PkCredenciado")%>">
<h5>Endereços</h5>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<div class="card-body">
<h6><%# DataBinder.Eval(Container.DataItem, "Logradouro") %>, <%# DataBinder.Eval(Container.DataItem, "Numero") %>, <%# DataBinder.Eval(Container.DataItem, "Complemento") %>, <%# DataBinder.Eval(Container.DataItem, "Bairro") %> - <%# DataBinder.Eval(Container.DataItem, "Municipio") %> - <%# DataBinder.Eval(Container.DataItem, "CEP") %></h6>
<div>
<h6>(<%# DataBinder.Eval(Container.DataItem, "Telefones[0].DDD") %>)<%# DataBinder.Eval(Container.DataItem, "Telefones[0].Numero") %></h6>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</ItemTemplate>
</asp:DataList>
Карточка примера работает просто отлично, а html в Chrome предоставляет правильный идентификатор и целевую информацию для элементов с <%#Eval("PkCredenciado")%>
.
Я не знаю, что я могу сделать, чтобы заставить это работать.
Комментарии:
1. Как насчет того, чтобы удалить
show
из класса, я имею в виду изменитьclass="collapse card-body show"
наclass="collapse card-body"
?
Ответ №1:
Проблема в том, что Eval("PkCredenciado")
это, вероятно, целое число, поэтому идентификатор свернутого элемента становится примерно таким
<div class="collapse" id="2048">
Но идентификатор не может начинаться с числа. Поэтому добавьте префикс к идентификатору
<button class="btn btn-primary" data-target="#element_<%# Eval("PkCredenciado") %>"">
Mais informações
</button>
<div class="collapse" id="element_<%# Eval("PkCredenciado") %>">
Комментарии:
1. Хм, я пробовал это w3schools.com/code/tryit.asp?filename=GIT8646IVYN3 но, похоже, он работает с целочисленным идентификатором.
2. @SelimYildiz, хм, это действительно работает. Но мне пришлось добавить префикс к коду Gabriel, чтобы заставить его работать.