2009-09-21 62 views
1

我有一個用戶控件,創建一個jQuery DatePicker(在UI中的標準)。這個用戶控件被我的頁面調用兩次(日期從/到),所以我有我的輸入/控件/按鈕/不是什麼的動態ID。我需要以某種方式設置一個隱藏的輸入或使用webmethod以某種方式設置用戶控件上的變量,以便搜索功能可以檢索日期。jQuery用戶控件亂 - 幫助!

這是否有意義?

感謝, 基思

+0

這可能是更容易也看到一些相關的頁面邏輯 – 2009-09-21 21:34:50

+0

什麼是你想做的理解?這聽起來可能是這樣的: 1)點擊搜索 2)獲取日期值 3)使Web服務調用搜索該日期的值 – 2009-09-21 21:36:09

回答

2

多一點澄清你的問題可能會有所幫助。但是,當你將ASP.NET和jQuery結合在一起時,ASP.NET對於創建複雜的ClientID參數的渴望肯定會讓它變得醜陋。

我發現在用戶控件中使用具有特定類名的div或span是有用的,然後從該點開始具有可預測的標記。

例如:

<span class="DatePickerUserControl"> 
    <div>...date controls</div> 
    <input type="hidden" class="DatePickerHidden" ... /> 
</span> 

然後在您的jQuery:

$(".DatePickerUserControl").each(function(e) { 
    $("input.DatePickerHidden", this).each(function(e) { 
     // Here "this" refers to the hidden field for the particular date picker 
    }); 
}); 
+0

這正是我去的地方...除了... 我必須在我的代碼隱藏中獲得價值,所以我只是將一個asp:TextBox添加到表單並隱藏起來。使用jQuery,我成功地設置了文本框的值,並選擇了日期。但是,現在我無法在代碼隱藏中獲得該值。有什麼建議麼? 在此先感謝... Keith – Keith 2009-09-22 14:27:59

+0

我會推薦System.Web.UI.WebControls.HiddenField它將呈現一個不知道爲什麼你不能得到的價值,也許嘗試隱藏的領域,它只會解決。否則,你可能在ViewState和你的頁面生命週期中遇到了問題 - 表單數據被處理,然後一些代碼重新使用默認值來重置文本框?有很多事情會導致這種古怪的行爲。 – 2009-09-22 15:34:28

+0

我的確如此。我用HiddenField,它工作得很好。問題是我不知道輸入的ID是什麼,因爲它們是動態添加的。所以,我給每個人添加了一個獨特的css類,當他們被添加時,並在我的腳本中使用相同的css類來選擇該頁面上的元素,我現在得到的價值。 – Keith 2009-09-22 18:45:19