2011-01-29 16 views
5

Tengo el siguiente sub-rutina en mi proyecto vb.net que funciona bien, pero Recibo constantemente construir advertencias:¿cómo lo arreglo RegisterClientScriptBlock es obsoleto advertencia en Visual Studio

'Público Overridable Sub RegisterClientScriptBlock (clave Como String, script As String) 'está obsoleto:' La alternativa recomendada es ClientScript.RegisterClientScriptBlock (Tipo de tipo, clave de cadena, secuencia de comandos ). visita http://go.microsoft.com/fwlink/?linkid=14202

Creo que sería mejor si utilizara el método correcto. He seguido las instrucciones aquí - http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock.aspx pero no tiene mucho sentido. Cualquier ayuda sería apreciada.

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 

Respuesta

4

Prueba esto:

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

(Reemplazar YourPageClass por el nombre de la clase de su página).

El tipo y las claves parámetros se utilizan para evitar el registro de la misma secuencia de comandos en la misma página. El parámetro tipo probablemente no tiene sentido cuando registra su script directamente en la página (como usted). Sin embargo, permite, por ejemplo, evitar conflictos potenciales entre diferentes controles personalizados que registran un script con el mismo parámetro clave.

+0

Me las arreglé para que funcione en función de su Actualización, pero tuve que usar lo siguiente: Si no ClientScript.IsClientScriptBlockRegistered (GetType (Miembro), "alerta") Luego ClientScript.RegisterClientScriptBlock (GetType (miembro), "alerta", alertScript) Fin If – James

+0

@James: tienes razón, soy más de tipo C# así que lo mezclé todo . La palabra clave correcta es 'GetType' por supuesto (respuesta actualizada). –

+0

Creo que para el tipo debe usar 'Me.GetType()' (en C# es 'this.GetType()'). – Matt

1

cambio Me.RegisterClientScriptBlock ("alerta", alertScript) a ClientScript.RegisterClientScriptBlock (TypeOf Me "alerta", alertScript)

no estoy seguro si esto es la sintaxis correcta en VB. neto para "TypeOf Me". En C# se vería así: ClientScript.RegisterClientScriptBlock (typeof (this), "alert", alertScript);

+0

Hola, probé su sugerencia, pero vb dice que se requiere un 'Es' ... – James

Cuestiones relacionadas