2011-01-17 17 views
0

私はいくつかの素敵なjQuery機能と派手さを使用しようとしているASP.NET Webフォームアプリケーションを作成しています。私が使っているアプリケーションの現在の部分は、2つのjQuery UIタブで構成されています。検索タブと結果タブがあります。ユーザーが検索ページから検索を実行すると、結果タブが選択され、結果がこのタブに表示されます。私は結果をgridviewに取得する必要があります。ここで問題が発生し始めます。JQueryとASP.NET Webフォーム

検索結果を取得する最も簡単な方法は、検索フィールドのポストバックを実行して入力フィールドのパラメータを使用してデータソースをフォーマットし、 datagridはそれ自身を世話し、データはバインドして結果を表示します。問題は、これは実際にはポストバックなどのために素晴らしいとは思えません。また、ポストバックがすべてを再初期化するので、タブ切り替えとそのすべての部分を処理するためにjavascript/jQueryを使用していくつかの問題を引き起こしますjQueryのUI(つまり、jQueryのUIタブ)から。要するに、ポストバックは、検索の入力と結果の取得を簡単にバインドすることを可能にしますが、ページとその振る舞いはすべてうごめいです。

このタイプのjQuery/javascript/AJAXを一緒にしてWebフォーム内に混在させて、gridviewなどの機能を実現する標準的な方法があるのだろうかと思っていました。私はいくつかの良いチュートリアルがあるのか​​、それともこの問題を解決するための方向性があるのか​​疑問に思っています。

私はこのすべてが意味をなされたことを願っており、皆様のご協力をいただき、ありがとうございます。

+1

グリッドビューの全機能についてはわかりませんが、jQueryテンプレートを使用してテーブル内のデータをレンダリングできます。また、asp.net ajaxの更新パネルを見たいかもしれません。 – Phill

答えて

1

私はこれが標準だと思いますが、ここで私が使用したパターンではありません。すべての

まず、私は、サーバーにバックアップするために夢中Page Methods for ASP.Netを使用しています。そのプロシージャ内の

public static void Search(string searchValue) 
... 

、私はどのユーザーコントロールのインスタンスを作成します。このように、ページ内の静的ページメソッドを呼び出す

PageMethods.Search(searchValue, onSearchComplete); 

:このケースでは、このようなものになるだろうGridViewのが含まれている、とsearchValueを渡し、そのコントロールのメソッドを呼び出す:

var searchControl = (SearchControl)new SearchControl().LoadControl("/controls/SearchControl.ascx"); 

searchControl.Search(); 

var stringBuilder = new StringBuilder(); 
using (var textWriter = new StringWriter(stringBuilder)) 
{ 
     var htmlWriter = new HtmlTextWriter(textWriter); 

     searchControl.RenderControl(htmlWriter); 
     return stringBuilder.ToString(); 
} 

これは、すべてあなたがイニシアで指定されたハンドラに結果の引数として終わるために起こっていますlこの例ではcall(onSearchComplete)を呼び出します。マークアップを使用してdivに入力するか、デバッグのために警告するなど、マークアップで何でもできます。

+0

この考え方は、私がこれを理解し始めるには素晴らしいスタートでした。問題は私の説明の中で少しびっくりしている。私はgridviewを追加する必要があると言いました、問題は、私は本当に生成されたコードとjavascriptのトーンを含むデベロッパーエクスプレスTreeListコントロールを使用する必要があります。このコントロールを使用するのは理想的ではありませんが、それは必要条件です。私は生成されたコードをつかんでdivに配置しようとしましたが、javascriptとコールバックの機能がひどく壊れていることが判明しました。このようなコントロールでこの種の問題に取り組む方法はありますか?それとも運が悪いのですか?ありがとう! –

+1

@JustinあなたはDevExpressを使用していると述べて以来、なぜajaxコールバックを使用しないのですか? – Vadim

関連する問題