繁体   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