2012-02-20 12 views
1

私たちの会社では、従業員のための公開注文のリストをWebページに残す必要があります。背後にあるコードではASP.NETデータを更新するには?

、私はどのような項目に基づいて検索をフィルタリング、ソートのこのようなドロップダウンリストddlList1とのTextBox txtSearchから選択されています

string sql 
if (!String.IsNullOrEmpty(ddlList1.SelectedValue) && 
    !String.IsNullOrEmpty(txtSearch.Text)) { 
    sql = string.Format("{0}={1}", ddlList1.SelectedValue, txtSearch.Text); 
} else { 
    sql = null; 
} 
GridView1.DataSource = db.Select(sql); 
GridView1.DataBind(); 

経営陣は、このデータは最新のものになりたいです、そして10分を超えることはありません。

私はこれを行う方法がわかりません。私のコードのほとんどはWindowsフォームで行われています。

これまでのところ、私はMETAタグを使用して、ページをリフレッシュする方法を発見した:WC3はrefreshプロパティを使用しないことをお勧めしているかのように

<meta http-equiv="refresh" content="600;Summary.aspx" /> 

はしかし、それはほとんど表示されます:

注意:値 "refresh"は、ユーザーから離れたページのコントロールをとるため、慎重に使用する必要があります。 「リフレッシュ」を使用すると、W3Cのウェブコンテンツアクセシビリティガイドラインに失敗することになります。

参考:だからHTML meta http-equiv

、私のデータを更新するための推奨方法は何ですか?

私たちのサーバーは役立つ場合は、古いSQL 2000マシンです。

[注:誰かがAJAX UpdatePanelを使用して提案したthis question on SOが見つかりました。私のプロジェクトは、現時点では、AJAXのコントロールがありません。 AJAXの複雑さを避けることができますか(最新パッケージのダウンロード、VS2010へのインストール、プロジェクトのリファレンスリストへの追加、それを使用するすべてのページでのAJAXの参照)、または単に弾丸を噛むことができますか?]

+0

10個ごとにパネルをリフレッシュするように設定したUpdatePanelをドロップして、分 –

+0

私はかなり前にこのマシンにAJAXをインストールしたと確信しています。プロジェクトへの参照を追加するにはどうすればよいですか?それはなんと呼ばれていますか?私はAJAXと呼ばれる.NETの参照の下で何かを見つけることができませんでした。 – jp2code

+0

ツールボックスにUpdatePanelを追加します。これはSystem.Web.Extensions.dllのC:\ Program Files \ ReferenceのAssemblies \ Microsoft \ Framework \ v3.5 \ –

答えて

1

を。はい、それは迷惑で、私はそれが嫌いですし、存在してはいけないと思っていますが、私はサイトを使用する必要はなく、それが本当にクライアントが望むものなら、それがクライアントのものです。

HTTPメタタグだけでなく、JavaScriptやASPコントロールを使って強制的にリフレッシュすることもできますが、まったく同じ問題があります。

更新パネルを使用するルートに行くと、いくつかの利点があります。最初に、そしておそらく最も重要なのは、グリッドビューが更新されている以外のページに多くのコンテンツがある場合、それを繰り返しレンダリングしていないことです。これは、(潜在的に)ページ全体がどのように見えるかに基づいてサーバーの負荷が大幅に削減されるか、最小限に抑えられる可能性があります。次に、ユーザーの更新プログラムの視覚的な影響をさらに微妙に(しかもカスタマイズ可能に)設定します。サイトをちょうど点滅させて最新の状態にしたい場合、更新パネルはカーソルを変更せずに、スピナーを一杯にします。(更新パネルがポストバックしているときにユーザに明らかにしたい場合は、そのようなものを追加することもできます)

+0

好奇心をそそられたOP、どのようなソリューションを使い終わったのですか? – Servy

1

ajaxを使用してサーバーからデータを取得し、クライアントのjavascriptでhtmlコンテナを設定します。私は、Microsoftの更新パネルを意味するのではなく、xmlhttp。

+0

にあるかもしれませんが、私はあなたが今説明したことのいずれかを行う方法を知りません。私が言ったように、私は通常、WebページではなくWindowsフォームで作業します。 – jp2code

+0

これは、特にこれが複雑な書式設定/表示の要件を持つ大量のデータであるため、更新パネルを使用するよりもはるかに多くの作業になります。これを行うことはできますか?はい、そういう状況のためにあまり好ましくない選択です。 – Servy

0

あなたが簡単な回避策を探しているなら、この試してください:あなたは本当にこのページで何か他のものの多くをしない場合は、あなたにもちょうど自動でリフレッシュままにする可能性があります

<script> 
    //Refreshing the page every 5 minutes 
    setInterval("location.reload()", 300000); 
</script> 
+0

これは ''と同じではありませんか? – jp2code

+1

いいえ、メタでHTML属性(DOMなど)を使用してページを更新している間は、JavaScriptを使用してjavascriptイベントに更新を委譲します。同じアプローチがいくつかのWebサイト(インスタンスのニュースWebサイト)で使用されています。 –

+0

@GiorgioMinardiこれはまったく同じではありませんが、ほぼ同じことを達成しています。まったく同じ点数とユーザーの気持ち悪さなどがあります。HTTPメタが貧弱な練習で不適切であると考えられる場合、ソリューションの受け入れやすさはあまりありません。効果的な唯一の違いは、メタタグがJavaScriptを無効にしても機能することです。これはできません。 – Servy

関連する問題