如何在工具部件(在 Webpart 中)中封装经常重复的代码
本文关键字:封装 代码 常重复 Webpart 工具部 | 更新日期: 2023-09-27 18:33:41
我的 WebPart 应该有很多带有 AnswerType 下拉列表的问题。在设置中,可以使用工具部件配置问题。编写和阅读一个问题的设置有效。我不知道代码如何用于 x-more 问题(我必须在哪种方法中使用冗余代码 - 我在哪里以及如何封装代码?你有给我的小费吗,或者你知道一个插曲的网站吗?我希望你能理解我的问题;否则我会写更多细节...
谢谢
此外,工具部分中的代码(基本部分):
public class FeedbackToolpart : ToolPart
{
Label ques1Lab, ans1Lab, typ1Lab;
DropDownList ddList;
List<Question> outputList;
...
public FeedbackToolpart() : base() { this.Title = "Bewertungseinstellungen"; }
protected override void CreateChildControls()
{
parentWebPart = (Feedbackwebpart)this.ParentToolPane.SelectedWebPart;
...
ddList = new DropDownList();
ddList.ID = "TheCheckBoxList";
ddList.Items.Add("");
ddList.Items.Add("Schieberegler");
ddList.Items.Add("Checkboxen");
ddList.Items.Add("Textbox");
ddList.SelectedIndexChanged += new EventHandler(ddList_SelectedIndexChanged);
ddList.AutoPostBack = true;
ddList.SelectedValue = (parentWebPart.MyValue != null) ? parentWebPart.MyValue[0].answType : "Textbox";
this.Controls.Add(pan);
base.CreateChildControls();
}
protected void ddList_SelectedIndexChanged(object sender, EventArgs e) { ... }
public override void ApplyChanges()
{
parentWebPart = (Feedbackwebpart)this.ParentToolPane.SelectedWebPart;
outputList = new List<Question>();
outputList.Add(new Question(texQuestion.Text, texAnswers.Text, ddList.SelectedValue));
parentWebPart.MyValue = outputList;
}
}
一种设计方法可能是:
创建一个 XML,其中包含每个问题的元素(封装文本、UI 控件类型和/或所需的其他特征)。创建 .NET 类以通过标准 .NET XML 序列化程序反序列化 XML 的内容。将 XML 文件部署到 SharePoint 的某个位置,您可以根据解决方案类型(服务器场或沙盒)访问它。您可以通过HTTP或SP OM读取其内容。反序列化后,您将在循环中枚举问题对象的数组,并为每个问题创建一个具有指定输入控件的表行。
--- 费尔达