#asp.net
#asp.net
Вопрос:
<asp:Repeater ID="rptAlbum" runat="server">
<ItemTemplate>
<a runat="server" href="<%# DataBinder.Eval("key")) %>" rel='lightbox[<%#Eval("value") %>]'>
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("key") %>' Width="30px" Height="30px"/>
</a>
</ItemTemplate>
</asp:Repeater>
Я пробую много способов, чтобы поймать ключ словаря в моей href, но всегда даю мне ответ, что тег сервера неправильно сформирован или строка не имеет свойства key .. :s
Если бы кто-нибудь мог мне помочь, это было бы очень полезно 🙂
с наилучшими пожеланиями
Ответ №1:
Ваши внешние кавычки неверны:
<asp:Repeater ID="rptAlbum" runat="server">
<ItemTemplate>
<a runat="server" href='<%# DataBinder.Eval("key")) %>' rel='lightbox[<%#Eval("value") %>]'>
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("key") %>' Width="30px" Height="30px"/>
</a>
</ItemTemplate>
</asp:Repeater>
Комментарии:
1. На самом деле нет, ошибка связана с кавычками, после исправления она выдает новые ошибки, связанные с вложенностью элементов управления. Оставайтесь позитивными.
Ответ №2:
вы не можете использовать это: поскольку это a с сервером runat.в нем не может быть другого желтого кода (только во внутреннем тексте)
<a href="<%# DataBinder.Eval("key")) %>" rel='lightbox[<%#Eval("value") %>]'>
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("key") %>' Width="30px" Height="30px"/>
</a>
важно :
это нормально :
<a runat="server " >
<%# DataBinder.Eval("lalala")) %>
</a>
это неправильно
<a runat="server " something='<%# DataBinder.Eval("lalala")) %>' > //here is the error - it contains a yellow code inside the runat server DECLARATION of the element
<%# DataBinder.Eval("lalala")) %>
</a>
Комментарии:
1. Итак, мне нужно использовать тег <asp:Hyperlink/> ??
2. нет, вам просто нужно удалить
tunat=server
из<a
объявления.3. попробуйте это :
<asp:Repeater ID="rptAlbum" runat="server"> <ItemTemplate> <a href="<%# DataBinder.Eval("key")) %>" rel='lightbox[<%#Eval("value") %>]'> <asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("key") %>' Width="30px" Height="30px"/> </a> </ItemTemplate> </asp:Repeater>
4. также попробуйте удалить образ runatserver из a , я не помню, возможно ли это, я думаю, да, но я не уверен. нет смысла помещать в повторитель элементы runatserver, если вы не хотите получить к ним доступ через событие ItemDataBound ….
5. я вернулся к ошибке, связанной с системой. Строка не содержит ключа свойства, однако это словарь, который я привязываю :