我使用以下代码在代码隐藏文件中组成一个动态表:
<table border="0" cellpadding="4" cellspacing="0">
<asp:PlaceHolder ID="PlaceHolder1" EnableViewState="false" runat="server"></asp:PlaceHolder>
</table>
以下是我在 Page_Load() 中构建它的方式:
System.Web.UI.HtmlControls.HtmlGenericControl trContainer0 = new System.Web.UI.HtmlControls.HtmlGenericControl("tr");
System.Web.UI.HtmlControls.HtmlGenericControl tdContainer00 = new System.Web.UI.HtmlControls.HtmlGenericControl("td");
//Time variable
DateTime dtDateTime0 = DateTime.Now();
//Time (must be localized)
TextBox tbxAtTime = new TextBox();
tbxAtTime.EnableViewState = false;
tbxAtTime.ID = "myTime1";
tbxAtTime.Text = dtDateTime0.ToShortTimeString();
tdContainer00.Controls.Add(tbxAtTime);
trContainer0.Controls.Add(tdContainer00);
PlaceHolder1.Controls.Add(trContainer0);
这会正确加载tbxAtTime
文本框,但是当我从该页面上的自定义控件更改文化时会出现问题,使其加载(通过回发)。在这种情况下,tbxAtTime
文本框似乎保留了它的旧值在页面的初始加载过程中得到,即使我在代码中放置了一个断点,它也会显示新的文本(根据新的文化。)
那么这里的诀窍是什么?