[英]Passing a value to code behind function from var
我试图将pageIndex变量从javascript传递给我的代码。 如果我传递任何硬编码的值,则代码有效。 但是,我无法使用var值使其工作。
pageIndex++;
var sPageIndex = pageIndex.toString;
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething(sPageIndex)%>';
这有效:
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething(123456)%>';
这是我在函数后面的简单代码:
Public Shared Function xDoSomething(sPageIndex As String) As String
Dim ss As String = sPageIndex
Try
If ss.Length < 1 Then
ss = "smaller than one"
Else
ss = ss
End If
Return "from code behind [" & ss & "]"
Catch ex As Exception
Return ex.ToString
End Try
End Function
我要传递的值似乎没有访问权限! 任何想法如何解决这一问题?
您需要了解服务器端和客户端之间的区别。 目前,您正在以一种根本行不通的方式混合两者。
pageIndex++;
var sPageIndex = pageIndex.toString;
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething(sPageIndex)%>';
您在上面的代码中尝试做的是使用一个仅在客户端(即浏览器)上存在的变量作为服务器端(即IIS服务器上)代码的一部分。
在服务器上sPageIndex
不存在-它根本无法使用它,并且在浏览器上进行更改不会产生丝毫差别。
以下代码起作用的原因是,您在服务器本身上为函数赋予了123456
的值。 服务器能够使用值123456
并生成所需的字符串。
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething(123456)%>';
如果您需要.innerHTML
基于客户端sPageIndex
变量,则需要将该变量的值发送到服务器(通过查询字符串或表单),以便它可以将其作为页面呈现的一部分进行处理...或者您可以查看类似AJAX的内容 ,它可以让您在后台转到服务器,获取HTML并根据需要显示它。
您尝试传递的内容将成为字符串。 尝试这个 :
pageIndex++;
var sPageIndex = pageIndex;
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething('+sPageIndex+')%>';
您必须进行字符串连接。
pageIndex++;
var sPageIndex = pageIndex.toString;
document.getElementById('<%= Label1.ClientID %>').innerHTML = '<%= xDoSomething('+sPageIndex+')%>';
您可以将服务器端功能设置为页面方法。 以下答案可能会有所帮助:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.