2011-01-29 113 views
5

我在我的vb.net項目中的以下子例程運行良好,但我不斷地得到建立警告:如何解決的RegisterClientScriptBlock是在Visual Studio過時警告

「公衆可重寫小組的RegisterClientScriptBlock(鍵字符串,腳本 As String)'已過時:'推薦的替代方法是 ClientScript.RegisterClientScriptBlock(Type type,string key,string script)。訪問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 

回答

4

試試這個:

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

(由您的網頁類的名稱替換YourPageClass)。

類型關鍵參數用於防止在同一頁面中註冊相同的腳本。 類型參數在您直接在頁面中註冊腳本時可能沒有意義(就像您一樣)。但是,它允許例如避免不同的自定義控件之間的潛在衝突,這些衝突使用相同的密鑰參數註冊腳本。

+0

我設法讓你的更新工作,但我不得不使用以下:如果不是ClientScript.IsClientScriptBlockRegistered(GetType(會員),「alert」)然後 ClientScript.RegisterClientScriptBlock(GetType(Member),「alert」,alertScript) End If – James 2011-01-29 21:45:36

1

變化Me.RegisterClientScriptBlock( 「警報」,alertScript)到ClientScript.RegisterClientScriptBlock(typeof運算我, 「警報」,alertScript)

我不知道這是在VB正確的語法。 「TypeOf Me」網。在C#中它看起來像這樣: ClientScript.RegisterClientScriptBlock(typeof(this),「alert」,alertScript);

+0

嗨,我試過你的建議,但VB說'是'是需要的... – James 2011-01-29 21:40:25