将表达式值传递给JavaScript函数

本文关键字:JavaScript 函数 表达式 值传 | 更新日期: 2023-09-27 18:29:07

我有下面的代码,这里CssClass是String类型。

<asp:Panel ID="Panel1" runat="server" title="<%# Title %>" class="<%# CssClass %>">
<asp:Panel ID="Panel2" runat="server" Style="padding-top: 20px; color: Red">
    Invalid Credential
</asp:Panel>
<asp:Panel ID="Panel3" runat="server" Style="text-align: center; padding-top: 50px;">
    <telerik:RadButton ID="LoginFaild" runat="server" Text="Ok" Font-Size="14px" Width="100px"
        OnClientClicked='<%# "function(button, args){closeDialog(" + CssClass + ");}" %>' />
</asp:Panel>

现在我想把这个String值传递给JavaScript函数closeDialog(),它是:

var closeDialog = function (className) {    
    $("." + className).dialog("close");
}

当我点击按钮时,我得到

loginError未定义

在我的Firefox Web开发人员工具栏中。

我该如何解决这个问题?

将表达式值传递给JavaScript函数

假设CssClass是在c#中设置的,则不需要在关闭对话框构造函数中指定内联CssClass属性。将closeDialog功能更改为:

var closeDialog = function () {    
    $("." + <%= CssClass %>).dialog("close");
}

然后您的OnClientClicked事件可以重写为:

OnClientClicked="function(button, args){ closeDialog(); };" or OnClientClicked="closeDialog();"

编辑:

页面顶部的脚本

var cssClass = '<%= CssClass %>';

关闭对话框功能

var closeDialog = function () {    
    $("." + cssClass).dialog("close");
}