Telerik AJAX radComboBox. Obtenir SelectedValue à partir de la deuxième zone de liste déroulante
Je suis en train de remplir un Telerik AJAX radComboBox à partir des résultats d'un autre c'est à dire
- comboBox1 – auto-complété et que l'utilisateur sélectionne un élément
- comboBox2 – utilisateur
sélectionne. Charges sur demande. Utilise la valeur sélectionnée à partir de comboBox1 à
remplir lui-même.
Le problème est que je ne peux pas obtenir la valeur sélectionnée de la combobox1
Balisage
<telerik:RadComboBox ID="comboBox1" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox1_ItemsRequested" >
</telerik:RadComboBox>
<telerik:RadComboBox ID="comboBox2" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox2_ItemsRequested" >
</telerik:RadComboBox>
C#
protected void comboBox1_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
//.. populate this combo
}
protected void comboBox2_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
string test = comboBox1.SelectedValue;
//.. test is empty. Why??
}
Malheureusement je ne peux pas obtenir la valeur sélectionnée. Le problème est peut-être que la page n'est pas réellement une publication (doit être une partie de la question), de sorte que la valeur sélectionnée n'a pas la possibilité d'être ensemble. Donc, j'ai écrit le code pour obtenir autour de cette
Balisage
<telerik:RadComboBox ID="comboBox1" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox1_ItemsRequested"
onclientselectedindexchanged="OnClientSelectedIndexChanged">
</telerik:RadComboBox>
<asp:HiddenField runat="server" ID="hidClientId" />
<telerik:RadComboBox ID="comboBox2" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox2_ItemsRequested" >
</telerik:RadComboBox>
JQuery
function OnClientSelectedIndexChanged(sender, eventArgs) {
var item = eventArgs.get_item();
var value = item.get_value();
$("[ID$='hidClientId']").val(value);
}
C#
protected void comboBox2_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
string test = hidClientId. Value;
//.. test is empty. Why??
}
Ce me semble avoir contourné la publication de la question, mais ça ne fonctionne toujours pas.
Personne ne sait comment récupérer la valeur d'un radComboBox de l'autre? Toute aide grandement appréciée
DataTextField
et DataValueField
?Je ne suis pas la définition explicite, parce que c'est le chargement à la demande. Je suis ajoutant des éléments de liste c'est à dire foreach (élément de Référence dans les articles) { cbClient.Éléments.Add(new Telerik.Web.L'INTERFACE utilisateur.RadComboBoxItem { Texte = élément.Description, Valeur = élément.Valeur }); }
Il semble que les sélections sont écrasés et remplacés par de nouveaux éléments de la liste avant d'en arriver à ce point dans votre code.
OriginalL'auteur Crab Bucket | 2011-11-08
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle vous ne pouvez accéder à d'autres contrôles sur la page, c'est parce que la RadComboBox effectue une demande Asynchrone pour les articles et les autres contrôles de la page ne sont pas accessibles.
Essayer la manipulation de la
OnClientItemsRequesting
cas, l'utilisation du contexte de l'objet (qui est passé pour le code côté serveur) pour envoyer la valeur sélectionnée de la première zone de liste déroulante.Balisage
Code derrière
Espère que cette aide.
Dans mon exemple ci-dessus, le
OnClientItemsRequesting
fonction est associée aveccomboBox2
. Par conséquent, toute sélection devrait déjà avoir été fabriqué à partir decomboBox1
(ou utilisez la valeur par défaut élément sélectionné)? Je ne suis pas sûr de ce que vous voulez dire à ce sujet étant tiré trop tôt, ai-je raté quelque chose?Toutes mes excuses pour cela. J'ai eu le cas sur la mauvaise zone de liste déroulante. fonctionne parfaitement. Merci pour cette
Pas de soucis, content que cela a aidé.
OriginalL'auteur jdavies