0

ユーザーが特定のドロップダウン リストから項目を選択するたびに、それに応じて多数のコントロールが更新される ASP.NET Web アプリがあります。たとえば、ラベルの名前が変更されたり、テキスト ボックスの ID が変更されたりします。これを行うには、私はjqueryを使用しています。

ユーザーの選択に応じてテキストボックスに新しいIDが与えられた後、メソッドに渡されたテキストボックスに入力された値を取得したいのですが、試してみRequest.Form[controlid]ましnullた. 私はasp.netコントロールを使用していたためにこれが起こっていると思ったので、jqueryを使用してテキストボックスを動的に作成することにしました..しかし、それでもnullが返されます。

私も次のようなことを試しました:

TextBox textBox = Page.FindControl(controlid) as TextBox

textBox.Text;

ただし、それでも私を返しますnull

アイデアはありますか?

4

4 に答える 4

0

Page.FindControl は、ページ内で直接コントロールを検索するだけで、再帰的ではありません。パネルまたはその他のコントロールにコントロールがある場合、それは機能しません。

この投稿を参照してください。

ASP.NET でコントロールを見つけるためのより良い方法

于 2013-03-27T14:18:29.960 に答える
0

controlid の代わりに Request.Form[controlname] を使用する必要があります。

サーバー側の FindControl は、サーバー側に既に存在するコントロールのみを認識するため、機能しません。

于 2013-03-27T14:19:01.977 に答える
0

フォームが送信されると、nameこのように Request.Form でキーとなる属性です Request.Form["controlname"] javascript を使用してクライアント側のテキスト ボックスを動的に変更しているため、ASP.NET はPage.FindControl() を使用してそれらを見つけることができます。クライアント側では、次のようなテキスト ボックスがあります。

<input type="textbox" id="t1" name="t1name" />

この値は次のように利用できます。Request.Form["t1name"]

于 2013-03-27T14:20:03.057 に答える
0

属性を追加する必要があります

runat="server"

コントロールの .aspx ページで。

次に、CodeBehind で [ControlName].Text を使用して、コントロールに対応する現在のテキストを見つけます。

于 2013-03-27T14:21:43.177 に答える