Domanda

Sto usando la suite di controllo Telerik ASP.NET (credo del Q3 2008, non posso ancora aggiornare). Ho un RadComboBox in un controllo RadGrid (in un modello di modifica di GridTemplateColumn). Se funzioni OK, ma ho una convalida sul lato client su altri controlli sulla griglia (che sembrano funzionare senza errori). Per qualche motivo dopo che si verifica la convalida del lato client, la casella combinata interrompe il funzionamento. Nessun errore JS visibile, la cosa muore.

Qualcuno ha visto questo e ha una soluzione? Google mi ha fallito.

Grazie per l'aiuto.

È stato utile?

Soluzione

Ok, l'ho risolto. Molto raggruppato in giro.

Innanzitutto, ho un pannello al di fuori del multiviewpanel che contiene la mia griglia con un altro RadcombObox simile che è morto anche alla convalida. Ho iniziato a pensare, cosa succede se avessi fatto una sorta di post indietro, sistemerebbe le cose per qualche motivo? Quindi nella mia griglia ho aggiunto un validatore personalizzato che convalida il RadCombrobox nella mia griglia. Chiama un metodo di convalida JavaScript come così ...

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

Nota, poiché questo campo non è necessario compilare dall'utente, il ritorno sempre è valido è vero. Qui è dove accade la quasi magia. Faccio un post sull'altro RadCombObox nel pannello superiore fuori dalla griglia in JavaScript. La parte superiore di RadCombObox Grid ha il suo autopostback impostato su True, non so se è necessario se provi questo esempio.

Ha funzionato. All'improvviso entrambi i radccomboboxes, sia quello nella griglia che quello sopra hanno ricominciato a funzionare. Ma ho notato che il valore sarebbe stato perso nel RadcombObox della griglia a volte, quindi per le risatine ho aggiunto la leggera pausa prima di fare il retro del post di 500 ms. Questo ha fatto il trucco. In realtà avrebbe funzionato con una pausa molto piccola, ma l'ho aumentata a 500 ms per un margine di sicurezza che un utente finale era su una connessione lenta e questo potrebbe importare.

Clggy, Cluggy, Cluggy. Vorrei poter semplicemente usare jQuery e usare un'alternativa a questi pazzi di Telerik Radcomboboxes, ma tale è la vita (sento una versione limitata di jQuery che viene sepolta a Telerik, sperimenterà questo in versioni successive). Ciò che fa schifo è che scommetto che l'ultima versione di Telerik risolve questo problema (è meglio), quindi tutto ciò che tira in giro finirà per non essere necessario quando aggiorniamo (non posso ancora, qualche conflitto con alcuni dei controlli personalizzati che costruiamo eredita di Telerik. Jan Q1 2009+ rompere quei controlli :()

Spero che questo possa aiutare qualcuno.

Altri suggerimenti

Un'altra opzione. Mi sono imbattuto in uno scenario in cui ho dovuto usare molti RadCombObosses, quindi piuttosto che preoccuparmi di convalidare il loro contenuto, ho appena aggiunto campi di testo con un pulsante accanto a ciascuno che avrebbe aperto un Radwindow con un RadCombObox in modo che i valori potessero essere scelti in modo dinamico. Su selezionare JavaScript ha passato il valotto selezionato all'elemento di destinazione nella pagina Apri della finestra. Mi sono imbattuto in alcuni mal di testa che dovevo lavorare anche se avendo un sacco di parametri di contesto impostati in JavaScript prima di chiamare il servizio Web su ciascuna chiave (suggerimento: con IE Imposta l'altezza di RadComboBox almeno per le versioni Telerik del 2008 ... se Non inizierai ad avere congelati).

Ancora una volta, spero che questa idea sia utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top