我有一个包含我从数据库访问过的变量的函数。 我试图用下面所述的方式将该变量与URL连接起来。
PopupWindow=window.open('Http://' + svrname +'/Quoteman/DatePicker.aspx?Ctl=' + ctl,'DatePicker',settings);
我在尝试编译代码时收到错误 这是功能:
Public Function getserverName() As String
Dim connection As SqlConnection
Dim command As SqlCommand
Dim readData As SqlDataReader
Dim path As String
path = ""
connection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("getServer"))
connection.Open()
command = New SqlCommand("select [Email_Notification_Date] from GlobalDB where [Email_Notification_Date]='Batman'", connection)
readData = command.ExecuteReader
While readData.Read()
path = readData.Item("Email_Notification_Date")
End While
connection.Close()
Return path
End Function
这是我试图调用函数的地方:
function PopupPicker(ctl,w,h)
{
var PopupWindow = null;
var serverName = new getServername;
svrname = serverName.getServername;
settings='width='+ w + ',height='+ h + ',location=no,directories=no, menubar=no,toolbar=no,status=no,scrollbars=no,resizable=no,dependent=no';
PopupWindow=window.open('Http://' + svrname +'/Quoteman/DatePicker.aspx?Ctl=' + ctl,'DatePicker',settings);
PopupWindow.focus();
}
P.S。该函数确实返回一个值。
编辑:对不起,忘了说我试图从javascript调用VB函数 这是我从错误中得到的窗口。Unhandled exception at line 200, column 5 in http://localhost:50209/Admin/EmployeeAssets.aspx || 0x800a1391 - JavaScript runtime error: 'getServername' is undefined
编辑:我在函数中添加了一个参数,现在它给了我'通过实例访问共享成员,常量成员,枚举成员或嵌套类型;资格表达不会被评估。
这是我修改后的代码
<System.Web.Services.WebMethod()>
Public Shared Function getServerName(suffix As String) As String
Dim connection As SqlConnection
Dim command As SqlCommand
Dim readData As SqlDataReader
Dim path As String
path = ""
connection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("getServer"))
connection.Open()
command = New SqlCommand("select [Email_Notification_Date] from GlobalDB where [Email_Notification_Date]='Batman'", connection)
readData = command.ExecuteReader
While readData.Read()
path = readData.Item("Email_Notification_Date")
End While
connection.Close()
Return ("http://") + path + suffix
End Function
我已经编辑了主文件,以包含一个字符串作为参数。
PopupWindow=window.open(<%= (New getServerName).getserverName("/Quoteman/DatePicker.aspx?Ctl=") %> + ctl,'DatePicker',settings);
答案 0 :(得分:2)
您正在从客户端调用服务器端(您正在连接到数据库)代码,最常用的方法是,将服务器名称写入服务器上的javascript。
PopupWindow = window.open('Http://' + '<%= GetServerName.getserverName() %>' +'/Quoteman/...');
另一种可能的方法是使用AJAX调用。您可以查看此博文:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
它在服务器端使用C#,但没关系,你可以这样标记你的功能:
<WebMethod> _
Public Shared Function getserverName() As String
答案 1 :(得分:1)
JavaScript运行时错误:' getServername '未定义
该函数名为 getserverName ,JavaScript区分大小写,也许就是全部。
答案 2 :(得分:1)
看起来像是从服务器方法返回字符串是你想要的,在这种情况下你可以使用 PageMethod 对象:
您可以通过声明脚本管理器并将 EnablePageMethods 属性设置为 true
来启用它<asp:ScriptManager ID="ScriptManager1"
EnablePageMethods="true"
EnablePartialRendering="true" runat="server" />
将函数声明为WebMethod,因此必须才能共享:
<System.Web.Services.WebMethod> _
Public Shared Function getserverName() As String
End Function
然后脚本:
<script>
function test(){
alert(PageMethods.getserverName());
}
</script>
还有一种方法可以使用jQuery,但我没有这样做,但Check it out
可以找到此示例的Soruce here但是使用C#语法。
希望有所帮助。