JS中的C#var的asp.net值

时间:2012-07-19 12:38:49

标签: c# javascript asp.net button popup

我有一个简单的JS弹出"are you sure..."窗口,以及一个下拉列表和asp:button。 单击按钮时我想要的是获取此消息:

"Are you sure you want to perform <%= ACTION %>?"

其中ACTION是来自dropdownlist.SelectedItem.Text。

的字符串

以下似乎不起作用:

OnClientClick="return confirm('Are you sure you want to perform <%= ACTION %>? );

它实际上只打印<%= ACTION %>而不是值。

我也尝试过:

function testMe() {
    return confirm('Are you sure you want to perform ' + document.getElementById('<%= hfAction.ClientID %>').value + '?');
}

OnClientClick="testMe();"

但无论是点击cancel还是OK,上述内容都会导致回发。

哪种用法正确?

3 个答案:

答案 0 :(得分:2)

您不能在服务器控件声明中使用服务器标签。初始化对象时,在代码中设置OnClientClick脚本。

mybutton.OnClientClick 
    = string.format("return confirm('Are you sure you want to perform {0}?');", ACTION);

答案 1 :(得分:2)

试试这个:

<asp:DropDownList runat="server" ID="ACTION">
    <asp:ListItem>Action 1</asp:ListItem>
    <asp:ListItem>Action 2</asp:ListItem>
</asp:DropDownList>

<script type="text/javascript">
    function ExecuteConfirm() {
        var ddlId = '<%= ACTION.UniqueID %>';
        var action = $("#" + ddlId + " option:selected").text();
        return confirm('Are you sure you want to perform ' + action + ' ?');
    }
</script>

<asp:Button runat="server" Text="Button" OnClientClick="return ExecuteConfirm();" />

答案 2 :(得分:1)

抱歉,我的最后一个答案是完全垃圾(在发布之前没想到)。这个怎么样(你几乎是对的)?

function testMe() {
    var val = document.getElementById('<%= hfAction.ClientID %>').value;
    return confirm('Are you sure you want to perform ' + val + '?');
}

OnClientClick="return testMe();"

你错过了OnClientClick的回报。