我有一种方法,旨在根据下拉列表中的值条目动态生成一系列 div。但是,当数字已经存在时,我希望重用相同的代码在第一个 page_load 上生成表。
这是调用该方法的地方。它被称为 GenerateTables,它是从 Page_Load 事件中调用的:
if (!IsPostBack)
{
AcademicProgramme programme;
if (Request.QueryString["id"] != null)
{
programme = academic.GetAcademicProgramme(Request.QueryString["id"]);
programmeName.Text = programme.Name;
PopulateView(programme);
GenerateTables(programme.Levels);
}
}
这是方法本身(为方法的大小道歉):
private void GenerateTables(int count)
{
for (int i = 1; i < count + 1; i++)
{
LiteralControl title = new LiteralControl();
LiteralControl close = new LiteralControl();
LiteralControl close2 = new LiteralControl();
String script = "<div class=\"ModuleProgTable\"><h3>Level " + i + "</Modules></h3></br>";
title.Text = script;
AcademicTable.Controls.Add(title);
Panel panel = new Panel();
panel.ID = "Level" + i + "Modules";
PopulatePanel(panel, GetModulesSession(i));
Button a = new Button();
a.ID = "AddModule" + i;
a.Text = "Add Module";
a.Click += (OpenPopup);
AcademicTable.Controls.Add(panel);
AcademicTable.Controls.Add(a);
close.Text = "</div> <!-- Close here -->";
close2.Text = "</div>";
AcademicTable.Controls.Add(close);
}
}
显然正在填充 div,因为如果我更改下拉选项,它们就会出现在 PostBack 上而不会失败。当我试图让它们在我遇到问题的第一个 page_load 上呈现时。
任何反馈和建议将不胜感激!
问候,-迈克尔