回发后,ASP.NET自定义服务器控件不保留值

时间:2011-04-05 13:01:52

标签: asp.net

我有一个自定义服务器控件(具有动态创建的下拉框和文本框的复合控件)。我已经启用了AJAX以避免页面重新加载。服务器控件在ASP.NET webcontrol中使用,只有几个按钮控制服务器控件的可见性。现在我在下拉框和texbox中输入值,然后单击任何其他按钮。在此回发后,最后输入的值消失了!控件不记住值。谁能帮我?如何在回发后保留这些值?

3 个答案:

答案 0 :(得分:3)

确保在每次回发后为控件提供完全相同的ID。如果可能的话,您可能还想在Page_Init期间尝试初始化动态控件(DropDownList和TextBox)。

答案 1 :(得分:3)

如果你的自定义服务器控件是动态创建所有控件,那么你需要在每个帖子上重新创建它们,你需要在Page_Load()之前创建它们,否则就是asp.net不知道他们填写了帖子数据。

要解决此问题,如果您无法在Page_Load()之前创建它们,那么您可以使用Request.Form[YourCustomControl.UniqueID]对所有控件使用发布的数据填充它们。

答案 2 :(得分:3)

您需要在每次回发时重新创建,请参阅This article