0

コントローラの名前に基づいてテキストボックスの値を取得する方法を知っている人はいますか?

例:

<asp:TextBox runat="server" ID="stDate" Text='<%# Eval("StartDate")%>' Width="6em" />

ソースコードを読むと、次のように表示されます。

<input name="ctl00$cplh$GridView1$ctl10$stDate" type="text" id="stDate" style="width:6em;" />

ctl00$cplh$GridView1$ctl10$stDateコントローラの名前に基づいてこのテキストボックスの値を取得するにはどうすればよいですか?

注:この方法で実行したい理由は、同じID(stDate)を使用しているテキストボックスが1つ以上あるためです。

4

3 に答える 3

0

ASP.NET 4を使用している場合は、テキストボックスでClientIDModeをstaticに設定すると、aspは設定したとおりのIDを保持します。

<asp:TextBox runat="server" ID="stdate" ClientIDMode="Static" />

これは、クライアント側のスクリプトでテキストボックスを使用する必要がある場合に役立ちます。これに関する記事がありますIDが一意であることを確認する必要があります。共通の名前が必要な場合は、Luisが提案したようにクラスを使用することをお勧めします。

于 2012-05-15T06:11:36.500 に答える
0

ページで生成されたIDを取得するには、ClientIDを取得する必要があります

stDate.ClientID
于 2012-05-15T01:31:21.653 に答える
0

私が提案したいことがいくつかあります:

  • ID は一意である必要があります。ページ内の各コントローラに一意の識別子を割り当てる必要があります。
  • .NET はコントロールへのフックを必要とします - そのため、.NET によって作成される場合は名前を設定する必要があります (強制しようとしても変更できません)。
  • コントローラー間で共通の名前を割り当てたい場合は、属性クラスを使用します。次に例を示します。 <input id="txtbox1" class="commonController" type="text" value="input1"> <input id="txtbox2" class="commonController borderClass" type="text" value="input2">

pd: 複数のクラスをコントローラーに割り当てることができることを覚えておいてください。

  • idまた、これはクライアント側のDOM操作専用であることを覚えておいてください...nameブラウザが実際にコンテンツを投稿するために必要です

詳細情報が必要な場合は、ここここを確認してください

于 2012-05-15T03:39:36.947 に答える