Question

J'utilise la suite de contrôle Telerik ASP.net (2008 Q3 je crois, ne peut pas encore mise à niveau). J'ai un radcombobox dans un contrôle RadGrid (dans un modèle de Edit de GridTemplateColumn). Si les fonctions ok, mais j'ai une validation côté client sur d'autres contrôles sur la grille (qui semblent fonctionner sans erreur). Pour une raison quelconque après la validation du côté client se produit, la zone de liste déroulante cesse de fonctionner. Aucun visible erreurs js, la chose meurt juste.

Quelqu'un a vu cela et avoir fix? Google m'a échoué.

Merci pour votre aide.

Était-ce utile?

La solution

Ok, je l'ai résolu. Un travail très cludgy autour.

D'abord, j'ai un panneau extérieur de la multiviewpanel qui tient ma grille avec un autre Radcombobox similaire qui est également mort sur la validation. Je commencé à penser, que si je faisais une sorte de retour après, serait-ce arranger les choses pour une raison quelconque? Donc, dans ma grille j'ai ajouté un validateur personnalisé qui valide la RadComboBox dans ma grille. Il appelle une méthode de validation javascript comme si ...

function valCOMBO(o, a) {
        a.IsValid = true;
        setTimeout(Res, 500);
      }
      function Res() { __doPostBack("<%=OPCOCombo.UniqueID %>");}

Note, étant donné que ce champ ne doit être rempli par l'utilisateur, je retourne toujours est valide est vrai. Voici où la magie se produit quasi. Je fais un poste de retour de l'autre RadComboBox dans le panneau supérieur extérieur de la grille en javascript. Le haut de la grille RadComboBox a son autopostback valeur true, ne savent pas si cela est nécessaire si vous essayez cet exemple.

Il a travaillé. Tout d'un coup les deux RadComboBoxes, à la fois celle de la grille et celle ci-dessus il a commencé à travailler. Mais j'ai remarqué la valeur serait perdue dans RadComboBox de la grille parfois, donc pour fou rire j'ai ajouté la légère pause avant de faire le poste arrière de 500 ms. Cela a fait l'affaire. Il serait en fait travailler avec une très petite pause, mais j'augmenté à 500 ms pour une marge saftey Incase un utilisateur final était une connexion lente et qui peut avoir son importance.

Cluggy, cluggy, cluggy. Je voudrais pouvoir viens d'utiliser jQuery, et utilisé une alternative à ces freaking radcomboboxes de Telerik, mais telle est la vie (j'entends une version limitée de jQuery est en burried Telerik, va expérimenter que sur les versions ultérieures). Ce qui est je parie que suce la dernière version de Telerik résout ce problème (mieux), donc tout ce farfouillé finira par être inutile lorsque nous mettons à jour (ne peut pas encore, un conflit avec certains des contrôles personnalisés que nous construisions héritant de de Telerik. Jan Q1 2009+ briser ces contrôles :()

Espérons que cela pourrait aider quelqu'un.

Autres conseils

Une autre option. Je suis tombé sur un scénario où je devais utiliser beaucoup de RadComboboxes donc plutôt que de vous soucier de la validation de leur contenu, I champs de texte venez d'ajouter avec un bouton à côté de chacun qui ouvrirait un radwindow avec un RadComboBox si les valeurs peuvent être choisies de façon dynamique. Lors de la sélection javascript passé le SelectedValue retour à l'élément cible sur la page d'ouverture de fenêtre. Je suis tombé sur quelques maux de tête que je devais travailler bien d'avoir un groupe de paramètres de contexte définis dans javascript avant d'appeler le webservice sur chaque touche vers le haut (indice: avec les versions IE régler la hauteur de Radcombobox au moins pour 2008 ... si Telerik vous ne vous commencer à avoir gèle).

Encore une fois, espérons que cette idée est utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top