我正在使用带有javascript的vb.net。每当我点击第1页上的链接时,它就会加载并打开第2页。作为其中的一部分,在page_load中我有一些代码可以注册一个javascript函数,如下所示:
Private Sub regjs()
Dim requesttype = "xx"
Dim url As String = "page.aspx?rtype=" & requesttype & "&claimid="
Dim s As New StringBuilder
s.Append("<script type=""text/javaScript"">")
s.Append("var r = new Object();" & ControlChars.CrLf)
s.Append("if (window.returnValue == 'undefined') { window.returnValue = ''; }" & ControlChars.CrLf)
s.Append("function vt(param) { " & ControlChars.CrLf)
s.Append("if (param !== null) {" & ControlChars.CrLf)
***s.Append("var jurl = '" & url & "'")
s.Append("param;" & ControlChars.CrLf)***
s.Append("var r = window.showModalDialog(jurl,'','dialogWidth:500px;dialogHeight:500px;resizable:no');" & ControlChars.CrLf)
s.Append("}" & ControlChars.CrLf)
s.Append("}" & ControlChars.CrLf)
s.Append("</script>")
If Not ClientScript.IsClientScriptBlockRegistered("js") Then
ClientScript.RegisterClientScriptBlock(Me.GetType(), "js", s.ToString())
End If
End Sub
我收到一条错误消息,指出在页面尝试加载时缺少分号。 s.Append(“param;”* ControlChars.CrLf)行中出现错误,表示缺少“;”。任何人都可以指出我哪里出错了? (我正在尝试构建一个带有变量作为查询字符串值的URL。)
谢谢, ç
答案 0 :(得分:1)
该代码输出以下字符串:
<script type="text/javaScript">var r = new Object();
if (window.returnValue == 'undefined') { window.returnValue = ''; }
function vt(param) {
if (param !== null) {
var jurl = 'page.aspx?rtype=xx&claimid='param;
var r = window.showModalDialog(jurl,'','dialogWidth:500px;dialogHeight:500px;resizable:no');
}
}
</script>
如您所见,此行无效:
var jurl = 'page.aspx?rtype=xx&claimid='param;
我怀疑你打算在那里进行字符串连接。
此外,值得一提的是,您应该StringBuilder.AppendLine
而不是Append
使用ControlChars.CrLf
。
答案 1 :(得分:0)
声明变量时,需要用分号结束语句。
答案 2 :(得分:0)
s.Append("var jurl = '" & url & "'")
s.Append("param;" & ControlChars.CrLf)
构建代码
var jurl = 'page.aspx?rtype=xx&claimId='param;
^
字符串(和语句)在指定的点结束,但没有分号。
有人假设您打算将param
添加到字符串的末尾,在这种情况下,您错过了+
。