1

私は Telerik ASP.net コントロール スイートを使用しています (2008 年第 3 四半期にはまだアップグレードできないと思います)。Radgrid コントロール (GridTemplateColumn の編集テンプレート) に radcombobox があります。機能が正常であれば、グリッド上の他のコントロールでクライアント側の検証が行われました (エラーなしで動作しているように見えます)。クライアント側の検証が行われた後、何らかの理由でコンボ ボックスが機能しなくなります。目に見えるjsエラーはありません。物事はただ死んでいます。

誰でもこれを見て修正しましたか?グーグルは私を失望させました。

ご協力いただきありがとうございます。

4

2 に答える 2

1

わかりました、解決しました。非常にぎこちない回避策。

まず、multiviewpanel の外側にパネルがあり、グリッドを保持する別の同様の Radcombobox も検証で停止しました。なんらかのポストバックを行ったら、何らかの理由で問題が解決するのではないかと考え始めました。そこで、グリッドに RadComboBox を検証するカスタム バリデータを追加しました。次のようにJavaScript検証メソッドを呼び出します...

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

このフィールドはユーザーが入力する必要がないため、常に true が有効であることを返します。ここで準魔法が起こります。トップ パネルのグリッドの外側にある OTHER RadComboBox に JavaScript でポスト バックします。グリッドの先頭の RadComboBox では、autopostback が true に設定されています。この例を試す場合、それが必要かどうかはわかりません。

出来た。突然、グリッド内の RadComboBox とその上の RadComboBox の両方が再び機能し始めました。しかし、グリッドの RadComboBox で値が失われることがあることに気付きました。そのため、500 ミリ秒のポストバックを行う前にわずかな一時停止を追加しました。それはトリックをしました。実際には非常に短い一時停止で機能しますが、エンド ユーザーの接続が低速で問題になる可能性がある場合に備えて、安全マージンのために 500 ミリ秒に増やしました。

だるい、だるい、だるい。jQuery を使えばよかったのに、これらのテレリック rad コンボボックスの代替手段を使用できればよかったのですが、それが現実です (テレリックには限定バージョンの jQuery が埋め込まれていると聞いています。今後のリリースでそれを試す予定です)。残念なことに、Telerik の最新リリースでこの問題は修正されているはずです (改善されています)。したがって、アップグレードするときに、この突っ込みはすべて不要になります (まだできません。継承して構築したカスタマイズされたコントロールの一部と競合するものがあります)。 Telerik の 2009 年 1 月第 1 四半期以降、これらのコントロールを破る :( )

これが誰かを助けることを願っています。

于 2009-10-14T21:15:55.060 に答える
0

別のオプション。多数の RadCombobox を使用しなければならないシナリオに遭遇したので、それらの内容の検証について心配するのではなく、値を動的に選択できるように、RadComboBox で radwindow を開くボタンを各フィールドの横に追加しただけです。選択したJavaScriptは、選択した値をウィンドウオープナーページのターゲット要素に戻しました。キーを押すたびにWebサービスを呼び出す前に、javascriptで一連のコンテキストパラメーターを設定する必要がありましたが、いくつかの頭痛の種に遭遇しました(ヒント:IEを使用して、少なくとも2008年のTelerikバージョンではRadcomboboxの高さを設定しました...そうしないと、フリーズし始めます)。

繰り返しますが、このアイデアがお役に立てば幸いです。

于 2010-05-07T22:13:37.170 に答える