2012-02-24 24 views
2

1000個以上のテキストボックスを動的に作成するASP.NETページがあります。ページの最初の作成と表示は正常に機能しますが、私がポーズバックを行うと、制御状態(テキスト)は最初の997個のテキストボックスに対してのみ復元されます。他のすべてのテキストボックスのテキストproprtyは、ポストバック中には復元されません。ASP.Netテキストボックスの値が、ページ上のテキストボックスの数が非常に多い場合に失われる

エラーが表示されない - テキストボックスが空白になっていることがわかりました。

誰か他にこの問題が発生しましたか?多数のコントロールや大きなビューステートを持つページで何か特別なことがありますか?

ここに示すコードがあります。

public partial class Test : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    void CreateTextBoxes(bool load) 
    { 
     for (int i = 0; i < 1200; i++) 
     { 
      TextBox txt = new TextBox(); 
      txt.ID = string.Format("{0}", i); 
      div.Controls.Add(txt); 
      if (load) 
       txt.Text = string.Format("Count {0}", i + 1); 
     } 
    } 

    protected override void CreateChildControls() 
    { 
     CreateTextBoxes(!this.IsPostBack); 
     base.CreateChildControls(); 
    } 
} 
+0

998番目のテキストボックスで何が起こるか、ブレークポイントplzを置くことができます – Marc

+0

私は問題を再現できません。 ** ** – jmaglio

+0

でも1000を超えるコントロールを持つページを表示するには、これをweb.configファイルに追加する必要がありました。それを修正してください。それはこのようなものだと分かっていましたが、私は設定を見つけることができません。ありがとう。 –

答えて

4

フォーム上の1000の以上のコントロールを持っている場合のappSettings要素の下にあなたのweb.configファイルに次のキーを追加し、適切な値を設定します。 <add key="aspnet:MaxHttpCollectionKeys" value="2000"></add>

詳細については、この記事を参照してください。 http://blogs.msdn.com/b/paulking/archive/2012/01/16/using-an-http-module-to-assist-in-adjusting-the-value-of-aspnet-maxhttpcollectionkeys-imposed-by-ms11-100.aspx

関連する問題