3

ユーザーがコンボボックスからコンポーネントタイプを選択できるフォームがあり、そのコンポーネントに応じて、別のコンボボックスからデータタイプを選択できる場合とできない場合があります。

ユーザーがコンポーネントタイプを選択すると、クライアント側のjavascriptが変更時に起動し、必要に応じてデータ型コンボボックスの値を設定し、必要に応じてデータ型コンボボックスを無効にします。奇妙なことに、そのフォームが送信されると、サーバー側はそのデータ型コンボボックスの値を取得しますが、これは私が設定したものではありません。

私はそれをjavascriptの1行に絞り込んだようです:

document.all("cmbDataType").disabled = true;

その行がコメント化されている場合でも、コンポーネントタイプに基づいて正しい値に設定されますが、無効にはなりません。フォーム送信は、クライアントが選択した値に基づいてサーバーに正しい値を提供します。

その行が実行されると、ユーザーがその無効なコンボボックスに正しい値を表示しているにもかかわらず、サーバーに返される値は正しくありません。

同じ問題を抱えている人を他に見つけることができなかったので、それが超奇妙なものではないことを願っています。ブラウザはIE7、webappはASP.NET2.0です。見てくれてありがとう!

4

1 に答える 1

2

これが発生する理由は、ASP.NET 2.0 が既定で無効なコントロールの値を送信しないためです。(より正確には、ポストバック時にサーバー コントロールの値を更新しません。) Page_Load イベントに次の行を追加することで、これをオーバーライドできます。

Page.Form.SubmitDisabledControls = true;

または、form タグに値を設定することもできます。

<form id="myForm" runat="server" SubmitDisabledControls="true">
于 2008-12-12T01:25:25.240 に答える