Frage

Ich versuche, Eval zu passieren innerhalb ASP.NET Repeater Html.RenderPartial aber nicht irgendeine Hilfe arbeiten können?

<asp:Repeater runat="server">
            <ItemTemplate>
                <% Html.RenderPartial("UserControl1",Eval("Title")); %>
            </ItemTemplate>
</asp:Repeater>

durch die Art, wie ich weiß, dass ich es auf andere Weise tun können, aber ich möchte wissen, ob es machbar ist oder nicht.

War es hilfreich?

Lösung

dass ist die gleiche, wie sie einen Ausdruck erwartet, die einen String zurückgibt, so dass diese zu erhalten kompilieren müssen Sie eine Methode aufrufen, die Html.RenderPartial () aufruft, gibt dann eine leere Zeichenkette:
<%
protected string RenderControl(object dataItem) 
{
    Html.RenderPartial("UserControl1", ((MyType) dataItem).Title);
    return "";
}
%>

... <%# RenderControl(Container.DataItem) %> ...

Ich würde nur foreach obwohl verwenden - WebForms Datenbindung und MVC teilweise Wiedergabe ist unberechenbar, bestenfalls Mischen:

<% foreach (MyObject o in data) { Html.RenderPartial("UserControl1", o.Title); } %>

Sie machen das Leben nicht schwerer als es sein muss ...

Andere Tipps

Versuchen Sie, Ihre RenderPartial innerhalb <%# %> Anweisung setzen wie:

<asp:Repeater runat="server">
    <ItemTemplate>
        <%# Html.RenderPartial("UserControl1",Eval("Title")); %>
    </ItemTemplate>
</asp:Repeater>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top