2

私が作成しました

<input type="checkbox" id="test" > 

リテラルを使用。今、私はこのコントロールを取得したいので、チェックされているかどうかを確認できます。aspx.cs ページでこのコントロールを見つけるにはどうすればよいですか?

4

4 に答える 4

5

コード ビハインド ファイルの制御を見つけたい場合は、これを runat="server" として設定する必要があります。

literal.text = "<input type=\"checkbox\" id=\"forum1\" runat=\"server\">";



HtmlInputCheckBox test = (HtmlInputCheckBox) Page.FindControl("test");

ただし、ページがポストバックされるたびに、このコントロールの状態が失われます。

これで正しい解決策が得られるかもしれません http://www.codeasp.net/blogs/SumitArora/microsoft-net/841/value-of-dynamic-textbox-lost-on-postback

ページ初期化イベントを使用してコントロールを生成できます

protected override void OnInit(EventArgs e)
{ 
  HtmlInputCheckbox test = new HtmlInputCheckbox ();
  test.id= "test";                 
  pnlControl.Controls.Add(test);
  base.OnInit(e);
}
于 2010-11-03T08:30:21.470 に答える
2

プログラムでリテラルとして作成した場合、FindControl を使用して検索することはできません。フォームがポストバックされると、次のようにフォーム コレクションを使用して、値がポストバックされたかどうかを確認できます。

Request.Form["test"]

また

Request["test"]

ユーザーがチェックボックスをオンにしない場合、フォームの値は存在しません。これは、隠しフィールドを使用して回避するものです。

HTH。

于 2010-10-29T12:35:32.860 に答える
1

FindControlを使用して、idパラメーターを指定したサーバーコントロールを検索します。

Control ctrl = FindControl("TextBox1");
于 2010-10-29T12:03:38.563 に答える
0

試す

Page.Controls.FindControl() 

また

Page.YourFormNameHEre.Controls.FindControl()
于 2010-10-29T12:03:30.780 に答える