Asp.net_jquery에서 Jquery Ajax를 사용하여 DataTable을 전송하고 수신하는 코드

WBOY
풀어 주다: 2016-05-16 18:19:47
원래의
1104명이 탐색했습니다.

그런 다음 서버는 GridView를 DataTable로 분해하고 DataTable에 행을 추가하고 이를 GridView에 바인딩한 다음 다시 클라이언트로 보냅니다.
더 간단할 수 있나요?
Ajax 데이터를 사용하여 데이터를 요청할 때 일반적으로 정보가 적은 문자열과 같은 간단한 형식을 사용합니다. 물론 XML을 다시 요청할 수도 있지만 XML 데이터는 훨씬 중복되며 처리를 위해 클라이언트에 가져오는 것이 json보다 훨씬 더 번거롭습니다.
이렇게 간단할 수 있나요?
DataTable과 JSON 유형을 서로 쉽게 변환할 수 있다면 위의 문제는 쉽게 해결될 수 있습니다.
장점: 1) 불필요한 포스트백 방지
2) 비동기 요청 데이터의 크기를 간소화합니다.
3) 데이터 양이 많을 때 지루한 데이터 송수신 문제를 해결합니다.
혜택이 너무 많으니 코드로 들어가보겠습니다.
프런트엔드 코드:

코드 복사 코드는 다음과 같습니다.

< ;html xmlns=" http://www.w3.org/1999/xhtml">

;script type=" text/javascript" src="js/jquery-1.4.2.min.js">

body>


;


;/html> ;


백엔드 코드:
///




코드 복사


코드는 다음과 같습니다.

/// 페이지가 로드될 때
///
/// /
protected void Page_Load(object sender, EventArgs e)
{
//비동기 요청 여부 결정
if (Request. QueryString[ "ajax"] == "1")
{
ProcessRequest()
}
}
///
/// 비동기 요청 처리
///

private void ProcessRequest()
{
Response.ContentType = "text/html"
string json = Request.Form["json"] ;
//DataTable 역직렬화
DataTable newdtb = Json2Dtb(json);
//DataTable을 JSON으로 직렬화
string back = Dtb2Json(newdtb)
Response.Write(back); 🎜>Response.End();
///
/// DataTable을 Json으로
///
param name="dtb">
///
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer ();
ArrayList dic = new ArrayList();
foreach(dtb.Rows의 DataRow 행)
{
Dictionary( ) ;
foreach(dtb.Columns의 DataColumn col)
{
drow.Add(col.ColumnName, row[col.ColumnName])
}
dic.Add(drow) ;
}
return jss.Serialize(dic);
///
/// Json을 DataTable로
/// 🎜>///
///
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize(json);
DataTable dtb = new DataTable()
{
foreach (Dictionary drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (drow의 문자열 키 . 키)
{
dtb.Columns.Add(key, drow[key].GetType())
}
}
DataRow row = dtb.NewRow(); foreach(drow.Keys의 문자열 키)
{
row[key] = drow[key]
}
dtb.Rows.Add(row)
}
}
return dtb;
}


다른 다운로드 파일이 첨부되어 있으니

json.zip
을 다운로드하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!