2014-03-26 34 views
3
  • 我有显示内容的web部件。
  • 使用Web部件编辑器区域我需要选择显示样式。
  • 通过选择样式我需要数据显示在网格或列表或滚动(从下拉列表中)。
  • 如何在Web部件编辑器区域中添加自定义属性。

我是新手。在WebPart编辑器中添加定制属性区域

我已经谷歌关于这个,但没有得到。

任何帮助被赞赏。

回答

5

由于Mathew Collins writes

我没有得到任何答复这里,但我却能办法找出该 做一些这些。

  1. 最后我决定修改EditorPart类。

  2. ApplyChanges()和SyncChanges()方法实质上只是将页面上的更改持久化到个性化blob,反之亦然。这是在页面上渲染一些控件的问题,并且这些方法将值映射到Web部件的属性。

Imports Microsoft.VisualBasic 
Imports System 
Imports System.Web.UI 
Imports System.Web.UI.WebControls 
Imports System.Web.UI.WebControls.WebParts 
Imports System.Data 
Imports FormsUtilities 

Namespace CustomEditorZone 

    Public Class CustomEditor : Inherits EditorPart 

     Public Sub New() 
      Me.Title = "Change Display Style" 
     End Sub 'New 

     Private PartPropertyValue As DropDownList 

     Protected Overrides Sub CreateChildControls() 
      Controls.Clear() 
      PartPropertyValue = New DropDownList() 
      PartPropertyValue.AppendDataBoundItems = True 
      PartPropertyValue.Items.Add("") 
      PopulateControl(PartPropertyValue) 
      Me.Controls.Add(PartPropertyValue) 
     End Sub 'CreateChildControls 

     Public Overrides Function ApplyChanges() As Boolean 

      EnsureChildControls() 
      Dim MyWebPart As GenericWebPart = DirectCast(WebPartToEdit, GenericWebPart) 
      Dim MyControl As CustomWebPart.WebPartBaseConsumer = DirectCast(MyWebPart.ChildControl, CustomWebPart.WebPartBaseConsumer) 
      MyControl.DisplayStyle = PartPropertyValue.SelectedItem.Text 
      Return True 

     End Function 'ApplyChanges 

     Public Overrides Sub SyncChanges() 
      Try 
       EnsureChildControls() 
       Dim MyWebPart As GenericWebPart = DirectCast(WebPartToEdit, GenericWebPart) 
       Dim MyControl As CustomWebPart.WebPartBaseConsumer = DirectCast(MyWebPart.ChildControl, CustomWebPart.WebPartBaseConsumer) 
       Dim CurrentDisplay As String = MyControl.DisplayStyle 

       For Each Item As ListItem In PartPropertyValue.Items 
        If Item.Text = CurrentDisplay Then 
         Item.Selected = True 
         Exit For 
        End If 
       Next 
      Catch ex As Exception 

      End Try 

     End Sub 'SyncChanges 

     Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter) 
      Try 
       writer.Write("Display Style :") 
       writer.Write(" ") 
       Me.PartPropertyValue.RenderControl(writer) 
      Catch ex As Exception 

      End Try 

     End Sub 'RenderContents 

     Private Sub PopulateControl(ByRef PartPropertyValue As DropDownList) 

      PartPropertyValue.Items.Add("Grid") 
      PartPropertyValue.Items.Add("List") 
      PartPropertyValue.Items.Add("Rolling") 
     End Sub 

    End Class 'CustomEditor 
End Namespace 
相关问题