我的< %%>不在div工作。为什么?

时间:2010-09-22 15:40:41

标签: asp.net

我在下面尝试了两个片段。没有。我试过<%#,<%=和<%。没有。所以我被卡住了。

<div style="background-color:Gray; color:white; text-align:center; width:100%;">
            <asp:HyperLink ID="HyperLink1" Target="_blank"  NavigateUrl='<%= Server.HtmlEncode(String.Format("~/ShowHistory.aspx?section={0}&jobnumber={1}", "APQP Header", "101244")) %>' runat="server">Show Updated History</asp:HyperLink>&nbsp;&nbsp;
            <asp:HyperLink Target="_blank" NavigateUrl="~/ShowDeletedHistory.aspx" ID="HyperLink2" runat="server">Show Deleted History</asp:HyperLink></div>
        <br />

<div style="background-color:Gray; color:white; text-align:center; width:100%;">
            <asp:HyperLink ID="HyperLink1" Target="_blank"  NavigateUrl='<%= String.Format("~/ShowHistory.aspx?section={0}&jobnumber={1}", "APQP Header", "101244") %>' runat="server">Show Updated History</asp:HyperLink>&nbsp;&nbsp;
            <asp:HyperLink Target="_blank" NavigateUrl="~/ShowDeletedHistory.aspx" ID="HyperLink2" runat="server">Show Deleted History</asp:HyperLink></div>
        <br />

2 个答案:

答案 0 :(得分:2)

尝试<%# ... %>并在页面加载时致电this.DataBind()(或Me.DataBind())。

答案 1 :(得分:0)

服务器控件不能包含此类型的标记。原因是“&lt;%=%&gt;”是basically equal to Response.Write,它本身在页面经过其生命周期后执行,此时已经构建了响应。如果在设置服务器端控件属性的值时使用它,则必须在解析页面标记时(或稍后)解析此值。这就是你不能使用“&lt;%=%&gt;”的原因在服务器控件中。

如果它是普通的html标签,它会起作用,但虚拟URL不会。

您是否有理由不在代码中设置NavigationUrl?它对我来说会更好看。

相关问题