2012-02-20 4 views
1

저희 회사에서는 직원들에게 열린 주문 목록을 웹 페이지에 보관해야합니다.ASP.NET 데이터를 새로 고치는 방법?

뒤에 코드에서

, 나는 종류의이 같은 드롭 다운 목록 ddlList1 및 텍스트 상자 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 Forms에서 수행됩니다.

참고 :

은 지금까지 내가 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를 설치했다. 프로젝트에 대한 참조를 추가하려면 어떻게해야합니까? 뭐라고 해요? .NET에서 AJAX라는 참조를 찾을 수 없었습니다. – jp2code

+0

도구 상자에 UpdatePanel을 추가하십시오. 그것은 System.Web.Extensions.dll에서 C : \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.5 \ –

답변

1

, 당신은뿐만 아니라 단지 자동 새로 고침 떠날 수 있습니다. 예, 성가시다. 나는 그것을 싫어한다. 나는 존재하지 않아야한다고 생각한다. 그러나 나는 사이트를 사용할 필요가 없다. 그리고 그것이 정말로 클라이언트가 원한다면, 그것은 클라이언트가 얻는 것이다.

HTTP 메타 태그 이외의 다른 새로 고침을 강제 실행하는 데 javascript 또는 asp 컨트롤을 사용할 수도 있지만 정확히 동일한 문제가 있습니다.

업데이트 패널을 사용하는 경로를 간다면 몇 가지 장점이 있습니다. 먼저 가장 중요한 것은, gridview가 업데이트되는 것 이외에 페이지에 많은 내용이있는 경우 반복적으로 렌더링하지 않는 것입니다. 이것은 잠재적으로 전체 페이지가 어떻게 보이는지에 따라 서버로드가 크게 감소하거나 최소화 될 수 있습니다. 다음으로 사용자에 대한 업데이트의 시각적 영향을 미묘하게 (또한 사용자 정의 할 수 있음) 나타냅니다. 사이트가 깜빡이고 최신 상태로 유지되기를 원한다면, 업데이트 패널은 커서를 바꾸지 않고, 스피너를 뒤집어 놓습니다.(업데이트 패널이 다시 게시 될 때 사용자에게 분명하게 보이도록하려면 다시 그런 항목을 추가 할 수 있습니다.)

+0

호기심 OP, 어떤 솔루션을 사용 했습니까? – Servy

1

수 있습니다. ajax를 사용하여 서버에서 데이터를 가져 와서 클라이언트의 javascript로 html 컨테이너를 채 웁니다. 나는 마이크로 소프트의 업데이트 패널을 의미하지는 않지만 xmlhttp. 간단한 해결 방법을 찾고 있다면

+0

에있을 수 있습니다. 그러나 방금 설명한 모든 작업을 수행하는 방법에 대한 실마리가 없습니다. 제가 말했듯이, 저는 보통 웹 페이지가 아닌 Windows Forms에서 작업합니다. – jp2code

+0

업데이트 패널을 사용하는 것보다 훨씬 더 많은 작업이 필요할 것입니다. 특히 복잡한 서식/디스플레이 요구 사항이있는 상당한 양의 데이터이기 때문입니다. 그것은 할 수 있겠습니까, 그렇습니다. 그러나 이러한 상황에 대해서는 덜 바람직한 선택입니다. – Servy

0

,이 시도 : 당신이 정말이 페이지에 무엇을 많이하지 않으면

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

이것은 '와 동일하지 않습니까? – jp2code

+1

아니요, 메타가 HTML 속성 (DOM)을 사용하여 페이지를 새로 고치는 동안 스크립트를 사용하여 새로 고침을 자바 스크립트 이벤트에 위임합니다. 동일한 접근법이 여러 웹 사이트 (뉴스 웹 사이트 인스턴스)에서 사용됩니다. –

+0

@GiorgioMinardi 정확히 똑같지는 않지만 여전히 정확하게 똑같은 것을 수행합니다. 정확하게 똑같은 함정과 열악한 사용자 감각 등을가집니다. HTTP 메타가 부적절한 실행으로 인해 부적절한 것으로 간주되면 더 이상 솔루션의 수용이 적다. 유일하게 효과적인 차이점은 메타 태그가 자바 스크립트가 비활성화 된 상태에서 작동한다는 것입니다. 그렇지 않습니다. – Servy

관련 문제