Para realizar una webpart asincronica e Sharepoint es aconsejable utilizar jquery dado que de esta forma es mas simple el desarrollo.
Esta webpart consta de dos partes:
- La webpart propiamente dicha
- Un handler
En la webpart agregamos este codigo en el metodo CreateChildControls:
Dim panel As New Panel()
panel.ID = Guid.NewGuid().ToString()
Me.Controls.Add(panel)
Dim url As String
url = "/_layouts/handler.ashx?"
Dim script As New Literal()
script.Text = String.Format("<script type=""text/javascript"">$(""#{0}"").load(""{1}"");</script>", panel.ClientID, url)
Dim ajaxLoading As New Image()
ajaxLoading.ImageUrl = "/_layouts/IMAGES/gears_anv4.gif"
'Add in other panel if need refresh webpart from the browser
panel.Controls.Add(ajaxLoading)
panel.Controls.Add(script)
En el handler (extension ashx) generamos un string con el contenido en html a mostrar.
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim str_out As String = String.Empty
str_out = "html a mostrar"
context.Response.Write(str_out)
End Sub
Con estas pocas lineas de codigo tenemos implementada nuestra webpart asincronica.