2011-08-05 191 views
0

我開始使用Date Picker,並非常喜歡它。但現在我面臨着一個問題。 我有一個ASP.Net應用程序。我有一個母版頁,一個Default.aspx頁面和幾個用戶控件(.ascx頁面)。在其中一個用戶控件中,我有一個帶有包含日期​​的文本框的GridView。這些文本框使用日期選擇器。 GridView在UpdatePanel中。我使用GridView的自定義分頁。當例如我需要轉到UpdatePanel更新的下一頁。問題是,當我從最初的頁面到另一個頁面時,日期選擇器消失。 這裏是我的代碼: 在母版頁的底部:日期選擇器問題

<script type="text/javascript"> 
$(document).ready(function() { 
    $("input.date").datepicker({ 
     showButtonPanel: true, 
     dateFormat: 'mm/dd/y', 
     changeYear: true, 
     closeText: 'X' 
    }); 
}); 
</script> 

在GridView:

<asp:TextBox ID="txtWFHCDate" runat="server" Text='<%#Eval("StrHCDate") %>' BorderStyle="None" Width="80%" CssClass="date" ></asp:TextBox> 

初始GridView的頁面生成的HTML:

<input id="ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPWorkflow_WorkflowGridView_ctl05_txtWFHCDate" class="date hasDatepicker" type="text" style="border-style:None;width:80%;" value="10/18/11" name="ctl00$CPHDefault$tcTPS$TPProd$ctl01$tcProduction$TPWorkflow$WorkflowGridView$ctl05$txtWFHCDate"> 

的改變GridView頁面後生成的html:

<input id="ctl00_CPHDefault_tcTPS_TPProd_ctl01_tcProduction_TPWorkflow_WorkflowGridView_ctl05_txtWFHCDate" class="date" type="text" style="border-style:None;width:80%;" value="10/18/11" name="ctl00$CPHDefault$tcTPS$TPProd$ctl01$tcProduction$TPWorkflow$WorkflowGridView$ctl05$txtWFHCDate"> 

我試圖將腳本從主頁面移動到Default.aspx頁面和.ascx頁面,但沒有任何幫助。

你能幫忙嗎? 謝謝。

+0

我不認爲我們在這裏看到完整的圖片。 「問題是,當我從最初的頁面轉到另一頁面時,日期選擇器就消失了。」所有這3頁上的JS都是?當一個新頁面被加載時,你需要初始化JS。 – nolabel

+0

當我在那裏說「頁面」時,我不是指aspx頁面。我只是說我的GridView的自定義分頁。例如。默認情況下,GridView顯示前100條記錄,當我按Next按鈕時,UpdatePanel被更新,並且GridView現在顯示接下來的100條記錄(日期選取器不再工作)等等。該腳本位於Master Page的底部,但我也嘗試了GridView所在的aspx頁面和非常ascx頁面(用戶控件)。 – dpreznik

回答

1

在頁面加載期間,ready()函數調用datepicker()將必要的綁定添加到文本輸入。當你改變GridView/UpdatePanel中的「頁面」時,這些文本輸入被丟棄並被新的替換。

UpdatePanel載入下一個「頁面」後,需要再次調用datepicker()來重新綁定文本輸入。您可以將其集成到.ascx控件中,或使用描述爲here的UpdatePanel回調。

+0

謝謝,我使用UpdatePanel回調,並且它在我將其放到.aspx頁面底部時起作用。我想知道爲什麼它不能在Master頁面的底部工作。 – dpreznik