如何在EditorPart中更新Zone和ZoneIndex

时间:2010-03-30 18:01:59

标签: asp.net web-parts

我创建了一个自定义EditorPart,我想在ApplyChanges方法中的WebPartToEdit上设置Zone和ZoneIndex。但是,这些特定属性是只读的,因此我无法设置它们。 LayoutEditor包含这些属性,因此应该可以更新它们。如何在WebPart上设置Zone和ZoneIndex?

1 个答案:

答案 0 :(得分:0)

我想出了怎么做。这简直太简单了。

public override bool ApplyChanges()
{
  // Set Zone and ZoneIndex here
  WebPartManager manager = WebPartManager.GetCurrentWebPartManager(Page);
  WebPartZone selectedZone = null;

  // Find the selected zone
  foreach (WebPartZone zone in manager.Zones)
  {
    if (zone.DisplayTitle == Zones.SelectedValue)
    {
      selectedZone = zone;
      break;
    }
  }

  // Get the index
  int selectedIndex = 0;
  int.TryParse(ZoneIndex.Text, out selectedIndex);

  // Move the web part
  if (selectedZone != null)
  {
     manager.MoveWebPart(WebPartToEdit, selectedZone, selectedIndex);
  }

  return true;
}