2017-02-01 3 views
1

ほとんどの場合に発生するGridView/Repeaterの厄介なリフレッシュメントを理解していますが、その要素内のLinkBut​​tonをクリックします。これがポストバックによって引き起こされた場合、なぜそれはいつも起こらないのですか? それはいつも引き起こされていない場合、私はそれを取り除く可能性もありますか?GridviewのLinkBut​​tonをクリックしてください:グリッドはほとんどの場合、常にリロードされますが、必ずしもそうとは限りません。

私は通常、細胞の詳細な情報を取得するには、この操作を行うと、グリッドまたはリピータにクリックされた:「GetDetails」方法で処理されたデータは、その後、他のいくつかの要素に表示されます

<asp:LinkButton ID="ButtonSelect" runat="server" CommandName ="Select" CommandArgument = '<%# Eval("date") %>' Text='<%# Bind("TAG") %>' OnClick="GetDetails"/> 

。グリッドをリフレッシュする必要はありません。

これはGridViewのLinkBut​​tonクリックに対する通常の動作ですか?

Martin

+0

'CommandName ="の使用に関係することがあります。 "を選択してください。多くのdatabuondコントロールには、そのコマンド名に関連付けられた特別な動作があります。代わりにカスタムコマンド名を使ってみて、違いがあるかどうか確認してください。それは確かではありませんが、何が起こるか見てみるだけで簡単にテストすることができます。認識されたコマンド名:[ここをクリック](https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.buttonfield.commandname(v = vs.110).aspx) – user1429080

答えて

1

これは、グリッドビュー内のサーバーボタンの通常の動作です。ポストバックが発生します。ポストバックはページライフサイクルを強制します。ページ全体が再作成され、キャッシュオプションやプログラミングによってはデータバインドが行われる場合とされない場合があります。

「修正」は実際に達成しようとしていることに依存します。ポストバックのために単に "画面のちらつき"を止めるだけの場合は、AJAX呼び出しまたは<asp:UpdatePanel>サーバーコントロールの使用を検討してください。

あなたは、クライアント側にJSで動作するようにしようとばかり、後になるまでポストバックを延期テンプレートフィールドにボタンを変換し、等の基本的なHTMLコントロール<a href="javascript:void();" ...><button type='button'><input type='button' ...、と<asp:LinkButton>を交換したいしている場合...

関連する問題