Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复Visual Studio中的RegisterClientScriptBlock已过时警告_Javascript_Asp.net_Vb.net_Visual Studio 2010 - Fatal编程技术网

Javascript 如何修复Visual Studio中的RegisterClientScriptBlock已过时警告

Javascript 如何修复Visual Studio中的RegisterClientScriptBlock已过时警告,javascript,asp.net,vb.net,visual-studio-2010,Javascript,Asp.net,Vb.net,Visual Studio 2010,我的vb.net项目中有以下子程序,运行良好,但我经常收到生成警告: '公共可重写子注册表ClientScriptBlock(键为字符串,脚本 As String)“”已过时:'建议的备选方案为 RegisterClientScriptBlock(类型、字符串键、字符串 脚本)。拜访 我想如果我用正确的方法会更好。我已经按照这里的说明做了,但是没有多大意义。任何帮助都将不胜感激 Protected Sub DBC_MEMBER_IsActive_CheckedChanged(ByVal send

我的vb.net项目中有以下子程序,运行良好,但我经常收到生成警告:

'公共可重写子注册表ClientScriptBlock(键为字符串,脚本 As String)“”已过时:'建议的备选方案为 RegisterClientScriptBlock(类型、字符串键、字符串 脚本)。拜访

我想如果我用正确的方法会更好。我已经按照这里的说明做了,但是没有多大意义。任何帮助都将不胜感激

Protected Sub DBC_MEMBER_IsActive_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DBC_MEMBER_IsActive.CheckedChanged
        Dim showmessage As String = "Warning!\r\n \r\n Unticking this box will delete this Member from the Databse. \r\n \r\n If you are unsure, make sure the box remains ticked"
        Dim alertScript As String = "<script language=JavaScript> "
        alertScript += "alert('" & showmessage & "');"
        alertScript += "</script" & "> "

        If Not ClientScript.IsClientScriptBlockRegistered("alert") Then
            Me.RegisterClientScriptBlock("alert", alertScript)
        End If
    End Sub
Protected Sub DBC_MEMBER_IsActive_CheckedChanged(ByVal sender作为对象,ByVal e作为System.EventArgs)处理DBC_MEMBER_IsActive.CheckedChanged
Dim showmessage As String=“Warning!\r\n\r\n取消勾选此框将从数据库中删除此成员。\r\n\r\n如果您不确定,请确保该框保持勾选状态”
Dim alertScript As String=“”
alertScript+=“警报('”&showmessage&“);”
alertScript+=“”
如果不是ClientScript.IsClientScriptBlockRegistered(“警报”),则
Me.RegisterClientScriptBlock(“警报”,警报脚本)
如果结束
端接头

将Me.RegisterClientScriptBlock(“警报”,alertScript)更改为ClientScript.RegisterClientScriptBlock(Me类型,“警报”,alertScript)

我不确定这是否是vb.net中“TypeOf Me”的正确语法。 在C#中,它看起来是这样的: RegisterClientScriptBlock(typeof(this),“alert”,alertScript)

试试这个:

If Not ClientScript.IsClientScriptBlockRegistered(GetType(YourPageClass), "alert") Then
    ClientScript.RegisterClientScriptBlock(GetType(YourPageClass), "alert", alertScript)
End If     
(用页面类的名称替换
YourPageClass


类型和键参数用于防止在同一页中注册相同的脚本。当您直接在页面中注册脚本时(就像您所做的那样),type参数可能没有意义。但是,例如,它允许避免使用相同的键参数注册脚本的不同自定义控件之间的潜在冲突。

我根据您的更新设法使其正常工作,但我必须使用以下命令:If Not ClientScript.IsClientScriptBlockRegistered(GetType(成员),“alert”)然后ClientScript.RegisterClientScriptBlock(GetType(成员),“alert”,alertScript)结束If@James:你说得对,我更像是C型的人,所以我把一切都搞混了。正确的关键字当然是
GetType
(答案已更新)。我认为对于类型,您应该使用
Me.GetType()
(在C中是
this.GetType()
)。