如何在RegisterClientScriptBlock中使用页面URL传递查询字符串

时间:2015-01-07 05:20:42

标签: javascript c# asp.net asp.net-ajax

我有一个javascript函数' Calc'我称之为

ScriptManager.RegisterClientScriptBlock(Page,typeof(Page),"func","Calc()",true)

我的问题是,该页面包含一些查询字符串形式的参数。

如果网址中没有查询字符串,代码工作正常,但由于我的网页请求包含查询字符串, javascript 功能未调用。

例如,当浏览器中的URL为 -

www.siteurl.com/MyPage.aspx

在这种情况下,上面给出的函数没有任何问题,但是当我的页面网址是 -

www.siteurl.com/MyPage.aspx?id=1

在这种情况下,javascript函数没有执行。

请帮我摆脱它。

2 个答案:

答案 0 :(得分:1)

您应该能够使用以下语法将params传递给calc()函数:

ScriptManager.RegisterClientScriptBlock(Page,typeof(Page),"func","Calc('" & param1 & "','" & param2 & "');",true)

答案 1 :(得分:0)

您的Calc函数究竟在aspx页面中的哪个位置?

客户方:

<head>
<title></title>
<script language="javascript" type="text/javascript">
    function Calc() {
        alert('hi');
    }</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>

服务器端:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 If Page.Request.Url.Query.Count() > 0 Then
    ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "func", "Calc()", True)
End If
    End Sub