这真的应该更容易,所以我必须错过一些明显的东西。我有一个启用AJAX的C#ASP.NET页面。我也有一个最初为空的ASP.NET面板,但我创建了几个下拉列表并将它们添加到后面的代码中。这部分工作得很好。但是,当页面进行回发时,控件“消失”,我根本找不到它们。请注意,面板本身不在AJAX更新面板中,我只提到它,因为我认为它可能是一个视图状态问题。C#&AJAX - 动态添加控件,但在回发中找不到它们
此代码工作得很好:
DropDownList newList = new DropDownList();
newList.ID = string.Format("lst{0}", opt.OptionName.ToString());
foreach (SaleItemOptions myOpt in opt.OptionsInList)
{
newList.Items.Add(myOpt.OptionName);
}
this.pnlOptions.Controls.Add(newList);
但这个代码总是返回NULL
DropDownList myList = (DropDownList)this.pnlOptions.FindControl("lstSize");
我已验证控件名的形式存在,我也用类似的变化ControlID,ID等。
此外,还有一个缓解因素在所有这些。我使用GCheckout API(Google Checkout for ASP.NET)创建回发。这真的不应该是一个问题,但认为我会提到它
因此,我非常喜欢MVC。 – 7wp 2010-05-18 15:48:33
@Roberto,是的MVC确实让这更容易,我建议OP在这里看看它: http://www.asp.net/mvc/whatisaspmvc – Justin 2010-05-18 16:32:40