2011-02-03 7 views
1

accrossダイナミック挿入されたコンテンツを持続します。今私はいくつかのアクションのポストバックを実行すると、サーバーコントロールの送信ボタンを言うと、私は(JavaScriptを介して挿入された)htmlをfoo divに永続化したい。今私は隠された入力サーバーコントロールを取ることを考えています。フォームが送信されるとき、私はその隠しコントロールにfoo divの内容を挿入します。次回はポストバック後にページが読み込まれます。隠しフィールド内のコンテンツ。私は正しいアプローチをしていますか、あるいは私が選ぶべき他の良いアプローチですか?は、私はdiv要素が言うことができます持っているポストバック

+0

これは、私が使用するアプローチです。クライアントが生成したコンテンツをフォーム入力フィールドのどこかに追加する必要があります。そうしないと、サーバーにポストバックされません。 – toddles2000

答えて

0

より良いアプローチ私は、divの代わりに 'foo'のためのASPパネルを使用し、トリガーとしてあなたのボタンで更新パネルでこれをラップすることだと思う。これにより、ajaxポストバックを使用してサーバー側のパネルの内容を設定できます。あなたが言及したアプローチを使用することを決定しない場合

はしかし、あなたはおそらく以下のような何かを行うことができます:

マークアップ:

<asp:Hidden ID="hdnContent" Value="" runat="server"/> 
    <div id="foo"></div> 

スクリプト:

$(document).ready(function() { 

    $('#foo').html($('#<%= hdnContent.ClientID %>').val()); 

    $('#trigger').click(function() { 

     var content = loadSomeContent(); 

     $('#foo').html(content); 
     $('#<%= hdnContent.ClientID %>').val(content); 

    }); 

}); 

ここ更新パネルの可能な解決策です:

マークアップ:

<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 

     <div id="foo"> 
      <asp:Literal ID="litFoo" runat="server"/> 
     </div> 

     <asp:Button ID="btnContent" Text="Insert Content" OnClick="btnContent_OnClick" runat="server"/> 
    </ContextTemplate> 
</asp:UpdatePanel> 

サーバーサイド:

protected void btnContent_OnClick(object sender, EventArgs args) 
{ 
    litFoo.Text = loadContent(); 
} 
+0

あなたはupdatepanelでもっとトリックをしてください...?私はコードを取得しないでください...コードを更新してください.... –

関連する問題