0

ASP.NET Web サイトで Javascript を使用しています。コードで updatepanel も使用しています。updatepanel にある隠しフィールドを使用しています。

document.getelementbyID(hiddenfield); を使用したい

しかし、updatepanel を更新するたびに、更新された値を取得するにはどうすれば同じ値を取得できますか。ありがとうございました。

4

4 に答える 4

0

コードを投稿していただけませんか。更新パネル内に非表示フィールドを配置した場合は、すべての投稿でその値が再初期化されます。更新パネルの外に配置してみてください...

うまくいけば、これがエラーに関連している場合は、エラーが修正される可能性があります。

于 2013-03-21T17:33:44.427 に答える
0

私の最初の「予感」は、サーバーがポストバックで新しい値を使用していないということです。ポストバックごとに、更新された UpdatePanels の内容全体が置き換えられます。これには、前述の非表示フィールドが含まれます。

Firebug (または同等のもの) でネットワーク要求を検査するか、デバッガーを ASP.NET プロセスにアタッチします。最初のステップは、値が期待/希望どおりでない場所/時期を正確に判断することです。

さまざまなフレームワーク (DevExpress、おそらく Telerik など) は、ポストバック間でデータを保持するのに十分スマートなカスタム隠しフィールド コントロールを提供します。このようなコントロールは、作成またはエミュレートするのが比較的簡単です。

非表示フィールドを非同期ポストバック間で永続化する簡単な方法の 1 つは、それを UpdatePanel .. YMMV の外に移動することです。

于 2013-03-21T17:17:11.210 に答える
0

ClientID propertyコントロールに runat="server" が含まれているため、使用する必要があります

于 2013-03-21T17:17:24.067 に答える
0

次のことを試してください。

window.onload = function () {
    document.getElementById("myButton").onclick = function () {
        var hiddenField = document.getElementById('<%=HiddenField1.ClientID %>');
        alert(hiddenField.value);
    }
}

あなたの側のコードが非常に少なく、エラーがないため、実際に何が起こっているのかを判断するのは難しく、多くの問題がある可能性があります。document.getElementByIdページがロードされた後などに使用していることを確認する必要があります...

于 2013-03-21T17:18:24.493 に答える