0

私はここ数日、いくつかのDevExpressASPxComboBoxで問題に取り組んできました。ページが読み込まれると、5つのボックスがあります。最初の値には選択可能な値があり、残りは「非アクティブ」である必要があります。アクティブなボックスの値が変更されると、次のコンボボックスが起動され、データが読み込まれ、前のボックスが非アクティブ化されます。

JavaScriptとサーバーサイトASP.NETを組み合わせて使用​​しています。私たちが抱えている問題は次のとおりです。

  • コントロールを(サーバー側から)クライアント無効としてマークすると、サーバー側からデータを取得できません...
  • コントロールを(サーバー側から)無効としてマークすると、どちらの側からもデータを取得できません...
  • Javaスクリプトを使用してコントロールを無効としてマークすると、サーバー側からクライアントを無効にするのと同じ問題が発生します...
  • コントロールをReadOnlyとしてマークすると、クライアント側から「非読み取り専用」にすることはできません。

子コントロールを非アクティブ(読み取り専用または無効)としてマークし、スタックを上に移動するときにそれらを再度アクティブにできるようにする必要があります...また、スタックをクリアして元に戻すことができる必要があります(現在JavaScriptで機能しています)。 、ただし、コントロールはまだ「アクティブ」です)。何か案は?

4

2 に答える 2

1

ClientEnabledプロパティ (サーバー側) とSetEnabledメソッド (クライアント側)を使用する必要があります。クライアント側でEnabledエディターを有効にできないため、プロパティを使用しないでください。 あなたが書いたように、このソリューションにも問題があります。ソースなしで確認するのは難しいですが、別のブラウザーで解決策を確認する必要があります。 IE で機能し、Chrome と FF で機能しない場合は、おそらく次の問題があります: ClientEnabled プロパティが false の場合、ポストバック後に ASPxComboBox が値を失うASPxTextBox ClientEnabled="false" がポストバック後に値を失う、 またはこれ: ASPxTextBox 値が取得されるClientEnabled プロパティが false の場合は失われますEnabled == false
ClientEnabled




于 2012-02-02T09:11:33.353 に答える
0

Client-side Eventsこれを行うには、AspxComboBoxの を使用できます。

First Comboboxes の場合、他のすべてのコンボボックスInit Eventに設定Enabled = falseして、クライアントを無効にします (クライアント側で)。各コンボボックスの ClientsideSelectedIndexChangedメソッド内で、ビジネス ロジックの必要に応じて任意のコンボボックスを有効にすることができます。大まかなサンプルは次のとおりです。

 <dxe:ASPxComboBox ID="FirstCombobox" ...... >
      <ClientSideEvents Init="function(s, e){SecondComboBox.SetEnabled(false); ... FifthComboBox.SetEnabled(false);}" 
                        SelectedIndexChanged="function(s, e){SecondComboBox.SetEnabled(true); //or whatever your logic is}" >
    </dxe:ASPxComboBox>

    <dxe:ASPxComboBox ID="SecondComboBox" ClientInstanceName="SecondComboBox" ...... >
    </dxe:ASPxComboBox>
    ..
    ..
    ..
    <dxe:ASPxComboBox ID="FifthComboBox" ClientInstanceName="FifthComboBox" ...... >
    </dxe:ASPxComboBox>
于 2012-02-01T18:47:35.817 に答える