ASP.net помещает данные в ретранслятор - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть:

  • Повторитель данных
  • Элемент управления в повторителе

И я хотел бы поместить некоторые значения вуправления.На данный момент у меня есть элемент управления:

<asp:Repeater runat="server" ID="ArchiveEntryRepeater">
    snip
    <asp:HyperLink ID="HyperLink1" ToolTip="Comment on Some Entry Title Here" runat="server" NavigateUrl="~/Blog/7/How-to-know-when-this/Comments">
        <strong><%# DataBinder.Eval(Container.DataItem, "Comments")%></strong> Comments
    </asp:HyperLink>
    snip
</asp:Repeater> 

, который работает нормально, но я хочу поместить

<%# DataBinder.Eval(Container.DataItem, "Title")%>

в свойство NavigateURL Гиперссылки.Кажется, просто вставить его не получится!

Ответы [ 3 ]

3 голосов
/ 14 апреля 2011

Попробуйте заключить NavigateURL в апострофы вместо двойных кавычек, чтобы не перепутать анализатор ASP.NET:

<asp:HyperLink runat="server" NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "Title")%>' [...]>[...]</asp:HyperLink>

Возможно, это ваша проблема.

1 голос
/ 14 апреля 2011

Вы всегда можете выполнить привязку на серверной части, используя событие itemdatabound . Это имеет некоторые преимущества, особенно когда данные не аккуратны или требуют каких-то серьезных манипуляций.

0 голосов
/ 14 апреля 2011

Другой вариант - потерять элемент управления и заменить его на элемент управления html-привязки, например:

 <asp:Repeater>
        <ItemTemplate>
            <a id="HyperLink1" title="Comment on Some Entry Title Here" href='<%# DataBinder.Eval(Container.DataItem, "Title")%>'
                style="font-weight: bold">'<%# DataBinder.Eval(Container.DataItem, "Comments")%>'</a>
        </ItemTemplate>
    </asp:Repeater>

Как только сервер отображает гиперссылку на клиента, обычно нет причин иметь его= 'сервер' ".Цель состоит в том, чтобы перейти на другую страницу, поэтому затраты на использование asp: HyperLink и nchor будут потрачены впустую.

...