繁体   English   中英

将值传递给var的函数背后的代码

[英]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+')%>';

您可以将服务器端功能设置为页面方法。 以下答案可能会有所帮助:

https://stackoverflow.com/a/27081733/4773711

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM