0

RadGridが編集モードを終了するときに、RadComboBoxのクライアント側インスタンス(またはRadComboBoxの新しく選択された値)を取得して、変更された値をサーバーにポストバックできるようにする必要があります。

問題は、オブジェクトのクライアント側IDが常に変更されることです。また、RadComboBoxは実行時に作成されません。ユーザーが、RadGridの特定の行をダブルクリックした後にのみ作成されます。したがって、次のような構文

var SundayLoc = $find("<%= FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale.ClientID %>");

FAILに等しい。値を変更し始めるまで、私はこれを回避することができました:

var SundayLoc = $find("FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale");

これは、行区切りオブジェクトを追加するまで毎回完全に機能しました。これにより、ユーザーが編集モードにした行に応じて、IDの「ctl05」が常に変更されます。私はこのオブジェクトとその値を取得するためのすべての問題を使用しようとしましたが、役に立ちませんでした。

正規表現を使用してみるつもりでしたが、正規表現を使用してHTMLを解析したいという誘惑は、不潔な悪魔の仕事であることに気付くまで、RegExのbobinceによるコミュニティwikiの回答を読んだ後、XHTMLの自己完結型タグを除きます。スポーン(それとさらなる調査の結果、正規表現はおそらく役に立たないという結論に達しました)。

とにかく、誰かが私のやり方でいくつかのアイデアを投げることができれば、私はそれを大いに感謝します。前もって感謝します。

4

2 に答える 2

0
  • コントロールIDを追跡するために、サーバー側で何らかのリストを作成します
  • なんらかの理由でページをレンダリングするときは、それらのIDをスクリプトブロックに書き込みます(配列などに入れます)
  • 値を送信する必要がある場合は、javascript配列の内容を使用してコントロールを参照できます。

実際の値を見つけるには、もう少し作業が必要になる場合があります。ingragisticsのファンシーパンツコントロールの場合、それらは「コントロール」全体に関する情報を取得するための特別な方法を提供します。radコントロールには似たようなものがあるかもしれません。

于 2010-07-22T19:40:51.857 に答える
0

さて、私が思いついた答えは実際には雄弁ではありませんが、100%信頼性があり、すべてクライアント側にあります(私の会社では標準のWebブラウザーx_xとしてIE7を使用しているのでこれは良いことです)。

特定のHTMLIDを検索する必要がなくなったため、$findコマンドとifステートメントの束を取り除くことができました。

        function SelectedIndexChanged(sender,eventArgs)
        {
            var rcbID = sender.get_id();
            var LocID = rcbID.substring(0,37) + "Locale";
            pastCombo = currentCombo;
            currentCombo = eventArgs.get_item().get_text();

            if(editedRow != null)
            {
                var Location = $find(LocID);

IDがサーバー側で生成されていなかったため(私が知る限り、Roatinのソリューションを試していませんでしたが、彼の答えを見る前に私のことを考えていたので、私はすでにやっているので、私の方が簡単に見えましたJavaScript内のクライアント側のものの束)、私はすでに得ているものを見て回り、それvar rcbID = sender.get_id();が私がすでに探していたものと非常に類似した価値をすでに得ていることに気づきました(SunLocaleと言う代わりに、SunActivityと言いました)。

だから私はちょっと考えました、私はrcbIDのすべてをsubstring()して、それに "Locale"を追加し、それに対して$ find()コマンドを実行して適切なRadComboBoxを取得することができます。それが機能することが判明しました。とにかく、私は自分の解決策を見つけることになったにもかかわらず、私の問題を調査してくれた皆さんに感謝します。:-)

于 2010-07-23T13:21:39.017 に答える