2008-10-21 3 views
3

나는 ASP.net 웹 애플리케이션 내에서 구현해야하는 html과 javascript (ExtJS를 통해)로 작성된 표의 프로토 타입/모형을 제공 받았다. 누구나 그리드로 데이터를 전달하는 방법에 대한 포인터를 가지고 있습니까 (구체적으로 GroupingStore로).ASP.net에서 ExtJS Grid로 데이터 리턴하기

XML/JSON을 반환하는 웹 서비스 나 도우미 페이지가 너무 많아지지 않으므로 클라이언트 콜백 또는 페이지 메서드를 사용할 수있는 방법이 있습니다. (특히 내가 잘 알지 못한다고 말할 수는 없습니까? 빙고!) 또는 somesuch, 그것은 좋아할 것입니다.

jQuery, 기본 제공 ASP.net 그리드 또는 다른 UI 프레임 워크를 사용하지 않는 것이 좋습니다. ExtJS 그리드의 사용은 위력에 의해 위임되었습니다. 따라서 더 좋든 나쁘 든간에 그리드는 제가 사용하고있는 것입니다.

답변

1

여기 기술 수준이 낮습니다. 웹 서비스 또는 기타 추가 기술을 사용할 필요가 없습니다. 같은 것을 할,

http://mysite.com/query.aspx?sql=select * from orders where status = 'open' 

단계 뒤에 코드에서 2

: 1 단계

하나 개 있었던 파라미터를 취하는 ASPX 페이지가 있고, 다음과 같이 호출

void Page_Load(object sender, EventArgs e) 
{ 
    Response.ContentType="text/json"; 
    DataTable contents = ExecuteDataTable(Request["sql"]); 
    Response.Write(JRockSerialize(contents)); 
    Response.End(); 
} 

JRock을 사용하여 데이터 테이블을 JSON에 직렬화 할 수 있습니다. IMHO 가장 깨끗한 JSON을 제공합니다.

그래서 정렬 JSON에 DataTable을 점점

...

경고 :이 분명 단순한 예입니다. 쿼리 문자열에 보안 성이 없으므로 SQL을 전달하면 안됩니다. 대신 이름이 지정된 쿼리와 매개 변수를 사용할 수 있습니다. 이 Ext example 같이

당신의 ExtJS 코드에서

3 단계, JSON 데이터 저장소와 격자를 만들 수 있습니다. 적절한 쿼리 문자열 매개 변수를 사용하여 query.aspx 페이지의 데이터 저장소로 url: 데이터 저장소를 설정합니다.

또한 ExtJs 예제에서 다시 표시되는 격자에 대해 열을 설정해야합니다. 내가 최근 Coolite samples에서 보았을 때 또는

...

은 정말 감동이었다. 이들은 ExtJS 파트너이며 좋은 ASP.NET & ExtJS 경험을 제공합니다. 그리고 아니, 나는 그들을 위해 일하지 않는다. 나는 그리드를 시도하지 않았지만, 고통스럽지 않을 수있다.

+10

턱. 경고는 빨간색으로 굵게 표시하고 깜박입니다. 절대로, 절대로, "status = 'open'"명령에서 "sql = select *"명령을 수행 할 수있는 페이지가 없습니다! 하지 마! 진심이야!그것은 "여기에 와서 해킹해라. 내 데이터베이스를 복사하고 내가 갖고있는 모든 데이터를 지우는 것"이라는 표시를 올리는 것과 같다. – BlaM

+1

BlaM에 동의하는 것. 절대로 그렇게하지 마십시오. 웹 서비스를 작성하고 결과를 JSON으로 가져옵니다. 많이 쉽다. –

+1

사실. 좋은 이유는 http://thedailywtf.com/Articles/Oklahoma-Leaks-Tens-of-Thousands-of-Social-Security-Numbers,-Other-Sensitive-Data.aspx를 확인하십시오. – MPritchard

3

페이지의 json 구조를 반환하는 서비스가 최선의 선택이라고 생각합니다. , 페이지 방식보다는 응용 프로그램 전반에 걸쳐 멋지게 추상화되고 재사용 가능합니다.

관련 문제