2011-08-08 61 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在J​​avaScript這樣

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

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

這應該給你一個你想要的jQuery實例。

+0

將這項工作,如果你寫的jQuery在一個單獨的js文件? – StuperUser

+0

您可以在包含.js文件之前在頭部添加一個全局JavaScript變量,如'mycontrolID = <%= ControlYouWant.ClientID%>',然後您可以在.js文件中訪問該變量。 – Rodolfo

+0

@lance:幾乎是正確的,你忘了包括'#' – Icarus

1

您將無法匹配使用jQuery選擇ID爲「SelectRole」,因爲ASP.NET器上的客戶端ID的ID會像「ParentControlID_SelectRole」一樣。有時候你可以使用像$(「ParentControlID_SelectRole」)這樣的東西來匹配它,因爲你在開發過程中觀察到,這是由ASP.NET持續地「生成」的客戶端ID。我不喜歡這種方法,因爲有時候你會重新安排控件,而你的匹配算法不再有效。

您可以將CssClass元素添加到ASP.NET控件,並將其值設置爲控件ID。在這種情況下,您可以設置CssClass =「SelectRole」,然後在JQuery中,您可以與$(「。SelectRole」)匹配。

或者,您使用JQuery通配符(*)選擇器來匹配元素像下面這樣:

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

這是XPath還是CSS或一些特殊的JQuery語法? – Kobojunkie

+0

@Konojunkie - 這是內置的JQuery選擇器語法。 – spdeveloper