このカスタム コンテンツ クエリ Web パーツでは、次のコードが機能します。Web パーツのタイトルと ToolPart のタイトルを変更できます。
public class CustomWebPart1 : ContentByQueryWebPart
{
public override ToolPart[] GetToolParts()
{
ToolPart[] toolPartArray = base.GetToolParts();
return new ToolPart[] { new CustomContentQueryWebPartToolPart(), toolPartArray[0], toolPartArray[1] };
}
}
public class CustomContentQueryWebPartToolPart : ToolPart
{
TextBox txt1;
CustomWebPart1 wp;
public CustomContentQueryWebPartToolPart()
{
this.Title = "My Custom Properties";
}
protected override void CreateChildControls()
{
txt1 = new TextBox();
this.Controls.Add(txt1);
base.CreateChildControls();
}
public override void ApplyChanges()
{
this.Title = "ToolPart Title: " + txt1.Text;
wp = this.WebPartToEdit as CustomWebPart1;
wp.Title = "WebPart Title: " + txt1.Text;
base.ApplyChanges();
}
}
しかし、配列内の位置 (Web パーツ プロパティの表示順序) を変更すると、Web パーツのタイトルを変更しても機能しなくなります。
public override ToolPart[] GetToolParts()
{
ToolPart[] toolPartArray = base.GetToolParts();
return new ToolPart[] { toolPartArray[0], toolPartArray[1], new CustomContentQueryWebPartToolPart() };
}
ここで何が問題なのですか?これはバグですか?ToolPart タイトルの変更は引き続き機能します。