2011-09-16 14 views
1

我有一個應用程序頁面(在SharePoint應用程序,如果是相關的),註冊一個jQuery日期選擇器插件:爲什麼在aspx頁的代碼隱藏中檢測不到JQuery datepicker值?

<script type="text/javascript"> 
    // Create JQuery calendar 
    $(document).ready(function() { 
     $('#<%=TextBoxDato.ClientID %>').datepicker({ altField: "#<%=TextBoxDato.ClientID %>", 
      altFormat: 'dd/mm/yy' 
     }); 

     $.datepicker.setDefaults($.datepicker.regional['no']); 
    }); 
</script> 


<asp:TextBox ID="TextBoxDato" runat="server" /> 
<asp:Button ID="ButtonSubmit" runat="server" text="Do it" /> 

在代碼隱藏,頁面加載我添加了一個小的客戶端腳本驗證文件名,然後填充文本框與今天的日期:

// Add client-side script to check for existing file names 
ButtonSubmit.Attributes.Add("onclick", "javascript:return checkFile()"); 

// Fill date box with today's date 
DateTime now = DateTime.Now; 

......然後,在一個點擊ButtonSubmit事件處理程序,我嘗試了用戶選擇的讀出值:

DateTime now = DateTime.Parse(TextBoxDato.Text, new CultureInfo("fr-FR")); 

我的問題是,當單擊ButtonSubmit時,用戶選擇的日期似乎在代碼隱藏中被忽略 - 'now'的值始終是今天的日期。運行調試器時,checkFilename()JavaScript方法可以訪問選擇的日期,但代碼隱藏不能。有沒有人看到我在做什麼錯了?

回答

1

你說

在代碼隱藏,頁面加載我添加了一個小的客戶端腳本來 驗證文件名,然後填充今天的 日期文本框:

您正在設置頁面加載時當前日期的值爲TextBox。把一些額外的代碼在Page_Load方法

VB

If Not Page.IsPostBack Then 
    '' assign the textbox value here 
End If 

C#

if (!Page.IsPosBack) { 
    // assign the textbox value here 
} 

否則每次你按一下按鈕,該值將重置爲頁面加載值

+0

聲音對我來說很重要。 – starskythehutch

+0

很好,謝謝。回想起來,這應該是顯而易見的。雖然我對ASP稍微有點新鮮感。 –

+0

當談到學習和嘗試新事物時,我們都是一樣的! –

4

日期TextBox是隻讀的嗎?如果是的話,ASP.NET將忽略新的值。

要解決此問題,您可以使文本框只能通過JavaScript讀取,而不能通過ASP.NET讀取。

+0

沒有,文本框不是隻讀的。對不起,遺漏了代碼中的文本框控件,我現在編輯它。 –

+0

我有一個Jquery datepicker這個問題 - 我正在更換一個Asp.Net日曆控件,並且原始開發者只有只讀文本框。工作得很好,因爲聊天室日曆做回傳設置值(我認爲) – ozz

相關問題