Sven_64 | J'ai fais une webpart pour un site WSS
elle est de type dropdownlist
j'ai un message d'erreur lorsque je renseigne la propriété "fieldname"
si je ne renseigne que la propriété "listname" cela ne pose pas de pb
je pense donc que le pb vient de la fonction "GetListData"
Ci-dessous le code, si quelqu'un a une idée.
D'avance merci à tous...
Code :
- Imports System
- Imports System.ComponentModel
- Imports System.Web.UI
- Imports System.Web.UI.WebControls
- Imports System.Xml.Serialization
- Imports Microsoft.SharePoint
- Imports Microsoft.SharePoint.Utilities
- Imports Microsoft.SharePoint.WebPartPages
- Imports Microsoft.SharePoint.WebControls
- Imports System.Collections
- 'Description for WebPart1.
- <DefaultProperty("listName" ), ToolboxData("<{0}:WebPart1 runat=server></{0}:WebPart1>" ), XmlRoot(Namespace:="WebPartDropDown" )> _
- Public Class WebPart1
- Inherits Microsoft.SharePoint.WebPartPages.WebPart
- Private Const _defaultText As String = ""
- Dim _text As String = _defaultText
- Protected myList As DropDownList
- Dim _listName As String
- Dim _fieldName As String
- Dim _displayText As String
- 'Property : Nom de la liste... [ListName]
- <Browsable(True), Category("Définitions" ), DefaultValue("" ), WebPartStorage(Storage.Personal), FriendlyName("Nom de la liste" ), Description("Indiquer le nom de la liste SharePoint du site courant" )> _
- Property [ListName]() As String
- Get
- Return _listName
- End Get
- Set(ByVal Value As String)
- _listName = Value
- End Set
- End Property
- 'Property : Nom du champ de la liste... [FieldName]
- <Browsable(True), Category("Définitions" ), DefaultValue("" ), WebPartStorage(Storage.Personal), FriendlyName("Nom du champ" ), Description("Indiquer le nom du champ de la liste SharePoint" )> _
- Property [FieldName]() As String
- Get
- Return _fieldName
- End Get
- Set(ByVal Value As String)
- _fieldName = Value
- End Set
- End Property
- 'Property : Libellé à afficher... [DisplayText]
- <Browsable(True), Category("Définitions" ), DefaultValue("" ), WebPartStorage(Storage.Personal), FriendlyName("Libellé" ), Description("Indiquer le libellé à afficher" )> _
- Property [DisplayText]() As String
- Get
- Return _displayText
- End Get
- Set(ByVal Value As String)
- _displayText = Value
- End Set
- End Property
- Protected Overrides Sub RenderWebPart(ByVal output As System.Web.UI.HtmlTextWriter)
- output.Write(SPEncode.HtmlEncode([DisplayText]))
- End Sub
- Protected Overrides Sub CreateChildControls()
- 'Initialisation du controle DropDownList
- Dim myList As New DropDownList
- myList.ID = "myList1"
- Me.Controls.Add(myList)
- AddHandler Me.PreRender, New EventHandler(AddressOf Me.WebPart1_PreRender)
- End Sub
- Private Sub WebPart1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
- 'La liste est "bindée" ici...
- Bind_ddlist()
- End Sub
- Private Sub Bind_ddlist()
- 'Si le composant WebPart n'est pas configuré...
- If (ListName = "" Or FieldName = "" ) Then
- Return
- Else
- If (myList.Items.Count = 0) Or (CStr(ViewState("ListName" )) <> ListName) Or (CStr(ViewState("FieldName" )) <> FieldName) Then
- ViewState("ListName" ) = ListName
- ViewState("FieldName" ) = FieldName
- myList.Items.Clear()
- myList.DataSource = GetListData(ListName, FieldName)
- myList.DataBind()
- End If
- End If
- End Sub
- Private Function GetListData(ByVal listName As String, ByVal fieldName As String) As ArrayList
- 'Ajout d'un array list de type ArrayList
- Dim aList As New ArrayList
- Dim mySite As SPWeb = SPControl.GetContextWeb(Context)
- Dim myList As SPList = mySite.Lists(listName)
- For Each myItem As SPListItem In myList.Items
- aList.Add(myItem(fieldName))
- Next
- Return aList
- 'GetListData = aList
- End Function
- End Class
|
Message édité par Sven_64 le 31-08-2005 à 11:31:40
|