2011-08-08 20 views
0

この場合、コントロールのIDを指定することで、私のドロップダウンリストコントロールを単純に参照できないようです。誰も助けることができる?JQueryでASP.NET要素を参照する

<asp:Panel ID="PnlRepImp" runat="server"> 
      <div class="module-row"> 
      <table> 
        <tr> 
         <td> 
           <telerik:RadComboBox ID="SelectRole" runat="server" Width="250px" Height="150px" 
       EmptyMessage="Select a Company" OnClientSelectedIndexChanged="PageMethods.LoadUsers(this);" EnableLoadOnDemand="true" ShowMoreResultsBox="true" 
       EnableVirtualScrolling="true"> 
           </telerik:RadComboBox> 

         </td> 

        </tr> 
      </table> 
      </div> 

     </asp:Panel> 

また、どのようにしてこのことを行うことができるかについての情報がありがとうございます。

答えて

2

あなたはあなたがクライアントIDのIDため、ID「SelectRole」とjQueryのセレクタを使用してASP.NETコントロールと一致することはできません。この

alert('<%= Control.ClientID %>'); 

var list=$('<%= "#"+ Control.ClientID %>'); 
4
$('#<%= ControlYouWant.ClientID %>') 

これで、必要なもののjQueryインスタンスが得られるはずです。

+0

が、この作品はウィル? – StuperUser

+0

あなたができることは、.jsファイルを含める前に 'mycontrolID = <%= ControlYouWant.ClientID%>'のようなグローバルJavaScript変数を追加してから.jsファイル内のjavascript変数にアクセスすることです – Rodolfo

+0

@lance:ほぼ正しいですが、 '#'を含めるのを忘れた – Icarus

1

ようなあなたのJavaScriptでクライアントIDを取得する必要があります"ParentControlID_SelectRole"のようなものになります。ときには、ASP.NETで生成されるクライアント側のIDが「一貫して」生成されていることを確認するため、$( "ParentControlID_SelectRole")のようなものを使用することができます。私はこのアプローチが気に入らない場合があります。時にはあなたがコントロール階層を再配置し、マッチングアルゴリズムがもう機能しなくなるからです。

ASP.NETコントロールにCssClass要素を追加し、その値をコントロールIDと同じに設定できます。この場合、CssClass = "SelectRole"と設定し、JQueryでは$( "。SelectRole")と一致させることができます。

それとも、あなたは次のような要素に一致するようにjQueryのワイルドカード(*)セレクタを使用:あなたは別の.jsファイルでのjQueryを書いた場合

var theCombobox = $("select[id*='SelectRole']"); //assumed to be <select> on client DOM 
+0

このXPathやCSS、または特別なJQuery構文ですか? – Kobojunkie

+0

@ Konojunkie - これは組み込みのJQueryセレクタ構文です。 – spdeveloper

関連する問題