2011-06-17 5 views
4

後に更新されない、私はこのようになります私のASPページ上のいくつかのコードがあります。は、ASP.NET隠しフィールドポストバック

<asp:UpdatePanel runat="server" id="updatepanel1" UpdateMode="Conditional" onload="updatepanel1_Load" ChildrenAsTriggers="false"> 
<ContentTemplate> 
<asp:HiddenField id="sendingRequest" runat="server" Value="0" /> 
.... 
</ContentTemplate> 
</asp:UpdatePanel> 

を私はまたの更新をトリガするために、これを行い、私のページにいくつかのJavaScriptを持っていますUpdatePanel:

var sendingRequest = document.getElementById("<%=sendingRequest.ClientID%>"); 
sendingRequest.value = "1"; 
__doPostBack('<%= updatepanel1.ClientID %>', ''); 

すべてはに今まで正常に動作しますが、私のupdatepanel1_Loadイベントでは、私が "0" に戻した値を設定しよう:

sendingRequest.Value = "0"; 

この値は、ポストバック後にクライアント上で更新されずに0に設定されることはありません。理由はわかりません!

誰でも手助けできますか?ありがとう

+0

[ASP.NETが部分的なポストバック後に隠しフィールドの値を取得する...](http://stackoverflow.com/questions/6379455/asp-net-getting-a-hidden-fields-value-サブポストバック後) –

+0

重複していません。それは、サーバー側のコードで動的にフィールドを作成するときに、隠しフィールドの値を取得する際の問題でした。ここで私の問題は、UpdatePanel ContentTemplateコンテナ内のクライアント側を作成すると、隠しフィールドの値が更新されないということです。 – Jimmy

+0

サーバー上で0に設定した後、1に設定されていない(またはviewstateからロードされていない) – Jaime

答えて

4

隠しフィールドに問題がある場合は、代わりにテキストボックスを使用できます。 css(display: none;)でテキストボックスを非表示にすると、同様の結果が非表示フィールドに表示されます。正確ではありませんが、実用的な回避策です。

+0

私はそれが古いスレッドだと知っています。私は私のソリューションを共有したいだけです。ビューの状態が有効になっているコントロールの 'YourCtrl.Attributes [" yourattname "]'プロパティに値を単に追加するだけで、うまくいくはずです。 – c00000fd

0

サーバー側からregisterstartupscriptなどを呼び出すようにしてください。私はメソッド名を正確に覚えることはできませんが、ページオブジェクトの一部です。これは、クライアントサイドでポストバック後に実行したいjavascriptを登録します。

+0

しかし、それは私が問題を抱えているjavascriptではありません...ポストバックは正常に動作しています。それは正しく動作していないポストバック中に値を更新しています。 – Jimmy

+0

はい、これはサーバー側では実行できませんが、クライアント上になければなりません。したがって、サーバコードが実行された後、JavaScriptがブラウザに吐き出され、隠しフィールドの値が設定されます。私はこれがあなたが探しているものであることを願っています。 – SoftwareGeek

+0

あなたは、クライアント側で "0"にsendingRequestの値を設定するために別のJavaScript関数が必要だと言っていますか?これはポストバックなので、必ずsendRequest.Value = "0"を使って値を設定することができます。サーバー側で?私はサーバー上のsendingRequestコントロールにアクセスできます。 – Jimmy

0

この同様のシナリオが正常にここで行われている:

http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

あなたが同じ手順に従うことを確認している - 私はあなたのコードのすべてを見ることはできません。最初にラベルを付けて、目に見えるコントロールとして更新されるようにしてください。それが動作する場合は、非表示のコントロールで動作が異なることを確認するために、隠し値で絞り込みます。

+0

こんにちは、私はHiddenFieldでそのサイトのコードを正確に複製しましたが、それは完全に動作しますが、私の実際のページでそれをinegrateしようとすると、動作しません - 値は更新されません。私は理由を理解できませんが、5秒ごとに更新しているページに2番目のUpdatePanelがあることがあります。しかし、私はそれがhiddenfieldのupdatepanelが正常に更新されるかどうかに影響するかどうかはわかりません。:/ – Jimmy

関連する問題