2012-03-20 13 views
1

コメントを追加した後に更新する必要があるリストビューがあります。投稿はjqueryで処理されます。コメントが正常に送信された後で強制的にリフレッシュしたいと思います。アニメーションはいいですね、私は単純な解決策があることを望んでいました。私はページメソッドを呼び出して再バインドを強制しようとしましたが、静的でなければならず、コントロールに直接アクセスすることができないため、完全に失われました。どんな助け? tiajqueryからリストビューのデータソースを再バインドするにはどうすればいいですか?

+0

こんにちは、私たちの答えのいずれかは、あなたが助けたのですか?そうでない場合、私がどのように助けることができるか教えてください。 – msigman

答えて

1

リストビューはサーバー側のコントロールなので、ポストバックを介してのみリバインドすることができます。私は過去にこれをやった一つの方法は、ページ上の

<asp:button runat="server" id="btnRefresh" onclick="ReBindListView" style="display:none;" /> 

を隠し、「リフレッシュ」ボタンを配置し、ポストバックにのサーバー側

function refresh() { 
     __doPostBack('<%= btnRefresh.ClientID %>', ''); 
} 

を引き起こすためにJavaScriptを使用することですbtnRefreshをクリックすると、リストビューを再バインドできます。

+0

いいえ。 JavaScriptを使用して再バインドすることができます。 – msigman

+0

@msigman javascript関数 "refresh"は実際にはポストバックを引き起こし、サーバー側のRebindListViewプロシージャを呼び出しています。 –

+0

あなたのソリューションは巧妙です! PostBackの主題点では、私は実際にはわかりません。 .NET PostBackを実行しているのですか、それとも、データを取得するためにサーバーへのjQuery AJAX呼び出しを実行していますか?あなたはおそらくそれが内部的にポストバックを行うのは正しいでしょう。しかし、少なくとも、あらかじめ定義されたJavaScriptの 'rebind()'メソッドを使用するのは、非表示のボタンを作成する必要がないため、少し簡単です。 – msigman

0

RadListViewは、いつでも新しいコメントで更新するために再バインドできます。ここでは例です:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> 
    <script type="text/javascript"> 
     function RefreshRadListView() { 
      var listView = $find("<%= RadListView1.ClientID %>"); 
      listView.rebind(); 
     } 
    </script> 
</telerik:RadCodeBlock> 

http://www.telerik.com/help/aspnet-ajax/listview-rebind.html

関連する問題