如何在 RegisterClientScriptBlock 中传递带有页面 URL 的查询字符串

本文关键字:URL 字符串 查询 RegisterClientScriptBlock | 更新日期: 2023-09-27 18:36:36

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

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

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

如果 url 中没有查询字符串,但由于我的页面请求包含查询字符串,因此 javascript 函数没有调用,因此代码工作正常。

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

www.siteurl.com/MyPage.aspx

在这种情况下,上面给定的函数可以毫无问题地执行,但是当我的页面网址是-

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

在这种情况下,javascript 函数不会执行。

请帮助我摆脱它。

如何在 RegisterClientScriptBlock 中传递带有页面 URL 的查询字符串

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

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

你的 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