0

我的 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;           
    }
}
4

1 回答 1

1

一种设计方法可能是:

为每个问题创建一个包含元素的 XML(封装文本、UI 控件类型和/或您需要的其他特征)。创建 .NET 类以通过标准 .NET XML 序列化程序反序列化XML 的内容。将 XML 文件部署到 SharePoint 的某个位置,您可以根据解决方案类型(场或沙盒)访问它。您可以通过 HTTP 或 SP OM 读取其内容。反序列化后,您将在循环中枚举问题对象数组,并为每个问题创建一个带有指定输入控件的表格行。

--- 费尔达

于 2012-05-12T09:16:57.980 回答