0

GridView内には、いくつかのTemplateFieldsがあります。これらのフィールド内のコントロールはrunat="server"に設定されているため、コードビハインドからアクセスできます。ただし、これらのフィールド値のいくつかは、JQueryを使用して情報を入力する過程で動的に変化する可能性があります。各行のデータを処理しようとしたときにフォームを送信すると、JQueryを使用してクライアント側で編集されたフィールドに返される値は、データバインディング中に割り当てられた元の値を反映します。たとえば、GridViewがデータバインドされたときに[時間]フィールドが空白だったが、JQueryを使用して値を350に変更した場合、コードビハインドで変更します。

string Hours = ((HtmlInputText)row.FindControl("Hours")).Value;

350が割り当てられたクライアント側ではなく、空白を返します。そのフィールドの現在の値にアクセスするにはどうすればよいですか?

4

1 に答える 1

0

この質問に対する簡単な答えは、サーバー コントロールは、サーバーにポストされる前に割り当てられた最新の値を保持しているということです。350それが最後に設定されたものである場合は、そのコントロールから 取得する必要があります。

実際のHtmlInputTextオブジェクトのインスタンス化を試み、それをデバッグ モードで調べて、探しているオブジェクトが正常に取得されたかどうかを確認できます。

HtmlInputText hit = (HtmlInputText)row.FindControl("Hours");

GridView テンプレートにあるため、asp.net はそれを変更した可能性がありますid:
1) その値が jQuery で正常に設定されていることを確認します。
2)コードビハインドでオブジェクトを正常に取得していますか?

于 2012-06-11T22:35:11.813 に答える