Buenas! Necesito que alguien me ayude.
Estoy empezando a programar con webparts. Mi problema es que tengo que dar
una nueva funcionalidad a la página de búsquedas del sharepoint.
Esta página tiene los webpart advancedsearch y resultSearch. Yo estoy ahora
con un webpart que hereda del advancedsearch, que es el que establece las
opciones de búsqueda. Bueno. Mi caso es el siguiente:
Necesito poner un nuevo dropdownlist cuyos elementos se extraen de un
archivo xml y luego hacer que su valor pueda meterlo en la sentencia sql de
busqueda. El caso es que la ruta del archivo se la defino en una propiedad
configurable desde el manager de los webpart, y al introducirla y darle a
aplicar, me accede perfectamente a los datos, sin embargo al darle al botón
aceptar, me va a la página de búsqueda pero el dropdownlist me aparece vacío.
Sin embargo, muestro el valor de la propiedad y sigue siendo lo que le he
introducido.Es un comportamiento algo extraño. En otras ocasiones me devuelve
un valor "FALSE".
El codigo que utilizo es:
Protected Overrides Sub RenderWebPart(ByVal output As
System.Web.UI.HtmlTextWriter)
Try
EnsureChildControls()
If lblError.Text = "" Then
output.Write("<p style='color:#ff0000;'>" & lblError.Text &
"</p>")
End If
output.Write("Direccion del archivo xml: " &
DireccionXML.ToString & "<br>")
output.Write("TipoDocumento: ")
Me.ddlTipoDocumento.RenderControl(output)
output.Write("<br>")
MyBase.RenderWebPart(output)
Catch ex As Exception
output.Write("<p style='color:#ff0000;'>" & lblError.Text =
ex.Message & "<br>" & ex.Source & "</p>")
End Try
End Sub
Protected Overrides Sub CreateChildControls()
Try
MyBase.CreateChildControls()
ddlTipoDocumento = New DropDownList
'Cadena con la ruta al archivo XML que se encuentra en una
propiedad configurable.
Dim sourceXML As String = direccionXML
'Generar una instancia de DataSet
Dim dsDatos As DataSet = New DataSet
'Rellenar el DataSet desde el archivo XML
dsDatos.ReadXml(sourceXML)
Dim vista As New DataView
vista = dsDatos.Tables(2).DefaultView
'Filtramos por los datos que pertenecen a los documentos
vista.RowFilter = "Terms_Id=0"
'Rellenamos la lista
ddlTipoDocumento.DataSource = vista
ddlTipoDocumento.DataTextField = "DESC"
ddlTipoDocumento.DataValueField = "DESC"
ddlTipoDocumento.DataBind()
Me.Controls.Add(ddlTipoDocumento)
Catch ex As Exception
lblError.Text = ex.Message & "<br>" & ex.Source & "<br>"
End Try
End Sub
Me es muy complicado de comprobar donde se encuentra el error ya que no he
conseguido acceder a la depuracion remota. (el sharepoint está en un servidor
disitinto a la máquina en la que programo los webparts). Si alguien sabe como
puedo acceder a esta opcion se lo agradecería mucho.
Gracias,
Leer las respuestas