2010-09-06 189 views
1

考慮:ASP.net和JQuery UI日期選擇器

<input id="datepicker" type="text" /> 

其中ID =日期選擇器告訴JavaScript來連接所有的日期選擇器代碼的表單元素,我怎麼把它變成一個服務器控件?

例如:

<input runat="server" id="datepicker" type="text" /> 

不起作用,因爲ASP.net生成它自己的ID。

編輯

<asp:TextBox runat="server" ID="dateTo" class="datepicker"></asp:TextBox> 

呈現爲

<input name="ctl00$mainContent$dateTo" type="text" id="ctl00_mainContent_dateTo" class="datepicker" /> 

並不起作用!

回答

5

我認爲這是一個很好的做法,哈哈已經一類觸發器有它的一切要創建的日期選擇器,如「JS-日期選擇器」

然後以避免重複代碼,你可以像下面JS一次:

$(document).ready(function() { 
    $(".js-date-picker").datepicker(); 
}); 

獲得ASP.net正確設置類的文本框,因此使用這個類,只需添加的CssClass =「JS-日期選擇器」的標籤:

<asp:TextBox runat="server" ID="dateTo" CssClass="js-date-picker" /> 

希望這闡明你的東西。

3

將日期選擇器綁定到ID不是一個好主意。更好的是給它的類(在asp.net:CssClass) 然後,多個輸入可以有日期選擇器。所以簡而言之,將datepicker綁定到一個類。這也修復你的asp.net問題ID的

<input id="aspid" class="datepicker" type="text" /> 

<asp:TextBox runat="server" ID="dateTo" CssClass="datepicker"></asp:TextBox> 

然後在您的jQuery選擇:

$(".datepicker").datepicker() 
+0

設置class =「datepicker」似乎不適用於jquery-ui – 2010-09-06 08:34:42

0

您需要引用Jquery的日期選擇器初始化控制的客戶端ID,像這樣的:

$(function() { 
    $("#<%=dateTo.ClientID %>").datepicker(); 
}); 

似乎工作:)

+0

,但它現在不是非常可擴展的...如果您將jquery綁定代碼放入您的母版頁中,那麼要製作日期選擇器,只需要將CssClass添加到輸入中即可完成。 – Stefanvds 2010-09-06 08:52:25

0

簡單!在輸入文字控件中使用clientidmode="static"

例 - input runat="server" id="datepicker" type="text" clientidmode="Static"

這應該解決您的問題。