我如何修复RegisterClientScriptBlock是Visual Studio中的过时警告

时间:2011-01-29 20:28:13

标签: javascript asp.net vb.net visual-studio-2010

我的vb.net项目中有以下Sub Routine运行正常,但我不断收到构建警告:

'Public Overridable Sub RegisterClientScriptBlock(key As String,script 正如String)'已经过时了:'推荐的选择是 ClientScript.RegisterClientScriptBlock(类型类型,字符串键,字符串 脚本)。访问http://go.microsoft.com/fwlink/?linkid=14202

我认为如果我使用正确的方法最好。我已按照此处的说明进行操作 - http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock.aspx,但这并没有多大意义。任何帮助将不胜感激。

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

2 个答案:

答案 0 :(得分:4)

试试这个:

If Not ClientScript.IsClientScriptBlockRegistered(GetType(YourPageClass), "alert") Then
    ClientScript.RegisterClientScriptBlock(GetType(YourPageClass), "alert", alertScript)
End If     

(将YourPageClass替换为您网页的名称。)

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

答案 1 :(得分:1)

将Me.RegisterClientScriptBlock(“alert”,alertScript)更改为ClientScript.RegisterClientScriptBlock(TypeOf Me,“alert”,alertScript)

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