将表达式值传递给JavaScript函数

时间:2012-03-26 19:48:32

标签: c# javascript asp.net expression

我有以下代码,此处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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

假设在c#中设置了CssClass,则不需要在关闭对话框构造函数中指定内联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");
}