2009-09-21 5 views
1

J'ai un contrôle utilisateur qui crée un DatePicker jQuery (standard dans l'interface utilisateur). Ce contrôle de l'utilisateur est appelé deux fois par ma page (date de/à) donc j'ai des ID dynamiques pour mes entrées/contrôles/boutons/what-not. Je dois d'une manière ou d'une autre placer une entrée cachée ou employer une méthode de Web d'une façon ou d'une autre pour placer une variable sur le contrôle d'utilisateur ainsi la fonction de recherche peut récupérer la date.Message de contrôle utilisateur jQuery - AIDE!

Est-ce que cela a du sens?

Merci, Keith

+0

Il pourrait être plus facile à comprendre en voyant aussi une partie de la logique de la page pertinente –

+0

Qu'est-ce que vous essayez de faire? Il semble que cela pourrait être le suivant: 1) Cliquez sur la recherche 2) Obtenir la valeur Date 3) Faire appel webservice à la recherche sur cette valeur de date –

Répondre

2

Un peu plus de précisions sur votre question pourrait être utile.

Cependant, lorsque vous obtenez ASP.NET et jQuery ensemble, le penchant d'ASP.NET pour la création de paramètres ClientID complexes peut certainement élever sa tête laide.

J'ai trouvé utile d'avoir un div ou un span avec un nom de classe spécifique dans le contrôle utilisateur, puis d'avoir un balisage prévisible à partir de ce point.

Par exemple:

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

Puis dans votre jQuery:

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

C'est exactement où je suis allé avec ça ... sauf ... I J'ai dû ajouter la valeur dans mon code-behind, donc j'ai juste ajouté un asp: TextBox au formulaire et l'ai caché. Et en utilisant jQuery, je définis avec succès la valeur de la zone de texte avec la date qui est sélectionnée. MAIS, maintenant j'ai du mal à obtenir cette valeur dans mon code-behind. Aucune suggestion? Merci d'avance ... Keith – Keith

+0

Je recommanderais System.Web.UI.WebControls.HiddenField qui affichera un Je ne sais pas pourquoi vous ne pouvez pas obtenir la valeur, peut-être essayer le champ caché et il va juste fonctionner. Sinon, vous avez peut-être un problème avec ViewState et le cycle de vie de votre page: les données du formulaire sont traitées, puis un peu de code réinitialise la zone de texte avec une valeur par défaut? Il y a beaucoup de choses qui peuvent causer ce genre de comportement bizarre. –

+0

Je l'ai fait exactement. J'ai utilisé HiddenField et ça a très bien fonctionné. Le problème est que je ne savais pas quel serait l'identifiant de l'entrée puisque ceux-ci sont ajoutés dynamiquement. Donc, j'ai donné à chacun une classe css unique quand ils ont été ajoutés et dans mes scripts en utilisant cette même classe css pour sélectionner cet élément sur la page et je reçois la valeur maintenant. – Keith