我正在創建一個簡單的窗體。我創建了兩個簡單的類,Question和QuestionSection。ASP.Net - 顯示一組控件
然後我創建了一些問題的子類, SimpleQuestion,MultipleChoiceQuestion,具有不同的行爲和標記。
QuestionSection具有設定,比如說,像SurveyForm.aspx所謂
<uc:QuestionSection ID="ucQuestionSection" runat="server">
<questions>
<uc:SimpleQuestion ID="qFirstName" runat="server" QuestionText="First name" />
<uc:SimpleQuestion ID="qLastName" runat="server" QuestionText="Last name" />
<uc:MultipleChoiceQuestion ID="qEmail" runat="server" QuestionText="Email address" />
</questions>
</uc:QuestionSection>
在我QuestionSection.ascx頁面的問題集合的性質,像所謂
private List<Question> _Questions = new List<Question>();
public List<Question> Questions
{
get { return _Questions; }
}
我有 -
<div class="portlet-section-body form-fields">
<asp:Panel ID="pnlQuestions" runat="server" ></asp:Panel>
</div>
這是通過此功能加載QuestionSection.ascx.cs
protected void Page_Init(object sender, EventArgs e)
{
foreach (Question q in Questions)
{
pnlQuestions.Controls.Add(q);
}
}
我有幾個問題 -
- 這是一個好主意?
- 我有一些關於回發和控件持久性的問題。我的想法是,這些問題控制不是動態的,所以應該工作。但是,回發時,問題控件未顯示。
- 是否有更好的控件在QuestionSection中使用,而不是Panel控件?我認爲只是使用this.Controls.Add,但我看不到如何在控件集合的任何一側添加div。
感謝您的努力。這不適用於我,因爲我正在尋找問題控制的行爲和外觀的靈活性(例如,爲多項選擇問題創建問題的子類)。 我仍然不確定問題控件是動態的。他們不是在頁面上啓動,然後由QuestionSection控件引用,而不是在代碼中創建?無論哪種方式,我意識到我需要添加重新加載代碼(從保存加載),並可以使用它來解決持久性問題。 – Spongeboy 2009-10-19 23:00:46