привязка словаря к повторителю с помощью тега

#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. я вернулся к ошибке, связанной с системой. Строка не содержит ключа свойства, однако это словарь, который я привязываю :