【发布时间】:2014-05-04 11:44:17
【问题描述】:
- 我有显示内容的 Web 部件。
- 使用 Webpart Editor 区域我需要选择显示样式。
- 通过选择样式,我需要将数据显示在网格或列表或滚动中(来自下拉列表)。
- 如何在 Webpart Editor Zone 中添加自定义属性。
我是新手。
我在 Google 上搜索过,但一无所获。
感谢任何帮助。
【问题讨论】:
标签: asp.net vb.net web-parts editor-zone
我是新手。
我在 Google 上搜索过,但一无所获。
感谢任何帮助。
【问题讨论】:
标签: asp.net vb.net web-parts editor-zone
我在这里没有得到任何回复,但我想出了一个办法 做一些这些。
最后我决定重写 EditorPart 类。
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
【讨论】: