1

次のようなコードを使用して、コード ビハインド ファイルで動的テーブルを作成します。

<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テキスト ボックスは古い値を保持しているように見えます。ページの最初の読み込み中に取得しましたが、コードにブレークポイントを配置すると、新しいテキストが表示されます (新しい文化に従って)。

では、ここでのトリックは何ですか?

4

0 に答える 0