簡體   English   中英

為什么綁定表達式不能與C#表達式一起使用?

[英]Why doesn't binding expression work with C# expressions?

以下代碼編譯,但不起作用。 據我所知,數據綁定表達式允許任何有效的C#代碼。 那么我在這里做錯了什么?

<asp:Panel CssClass='<%# ("my-class") %>' runat="server" ID="myPannel">
   Blah
</asp:Panel>

<% this.myPannel.DataBind(); %>

我沒有收到任何錯誤。 它只是不呈現類屬性。 我試過沒有括號同樣運氣不好。

請注意,我需要在CssClass屬性中計算一個表達式,我希望將該表達式的結果賦給class屬性。 這就是我通過將字符串括在括號中來強調這一點的原因。

嘗試這個:

<html>
<head runat="server">
    <title></title>
    <script runat="server">
        protected void 
            Page_Load(object sender, EventArgs e)
        {
            this.myPannel.DataBind();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Panel CssClass='<%# ("my-class") %>' 
            runat="server" 
            ID="myPannel">
            Blah
        </asp:Panel>
    </form>
</body>
</html>

或者只是切換內聯代碼段的順序:

<body>
    <% this.myPannel.DataBind(); %>
    <form id="form1" runat="server">
        <asp:Panel CssClass='<%# ("my-class") %>'
            runat="server"
            ID="myPannel">
            Blah
        </asp:Panel>
    </form>
</body>

或者只是使用:

<% this.myPannel.CssClass = "my-class";%>
<form id="form1" runat="server">
    <asp:Panel
        runat="server"
        ID="myPannel">
        Blah
    </asp:Panel>
</form>

在所有這三種情況下,您必須確保在頁面的生命周期中處理控件的實際內聯代碼之前更新控件屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM