ASP.NET 2.0에서 XML 파일로 페이징하기 ASP.NET
2009.02.05 22:59 EDIT
여기서 사용할 예제 XML 소스는 다음과 같다.
<?xml version="1.0" encoding="utf-8" ?> <links> <link no="1" contentsType="XML" title="Sample XML" /> <link no="2" contentsType="HTML" title="Sample HTML" /> </links>
ASP.NET 2.0 ¶
우선 GridView를 이용하면 매우 간단하게 표를 만들 수 있다.
Default.aspx :
Default.aspx.cs :
결과 :
ASP.NET 2.0에서 페이징을 구현하는 한 가지 방법은 PagedDataSource를 이용하는 것이다. 여기서는 각각 XML 내용 및 페이지 번호 목록을 보여줄 두 개의 Repeater를 만들어 구현해본다.
<asp:GridView ID="grid1" runat="server" />
XmlDataSource source = new XmlDataSource(); source.DataFile = "XMLFile.xml"; grid1.DataSource = source; grid1.DataBind();
no | contentsType | title |
1 | XML | Sample XML |
2 | HTML | Sample HTML |
ASP.NET 2.0에서 페이징을 구현하는 한 가지 방법은 PagedDataSource를 이용하는 것이다. 여기서는 각각 XML 내용 및 페이지 번호 목록을 보여줄 두 개의 Repeater를 만들어 구현해본다.
DataSet xmlSource = new DataSet(); xmlSource.readXml(Server.MapPath("XMLFile.xml")); PagedDataSource pds = new PagedDataSource(); pds.DataSource = xmlSource.Tables[0].DefaultView; pds.AllowPaging = true; pds.PageSize = 10; pds.CurrentPageIndex = currentPage; xmlRepeater.DataSource = pds; xmlRepeater.DataBind(); //�~N~X�~]���~U DataTable dt = new DataTable(); dt.Columns.Add("PageIndex"); dt.Columns.Add("PageText"); for (int i = 0; i < pds.PageCount; i++) { DataRow dr = dt.NewRow(); dr[0] = i; dr[1] = i + 1; dt.Rows.Add(dr); } pageList.DataSource = dt; pageList.DataBind();
XPath를 이용해 검색한 결과를 불러들이려면 먼저 XmlDocument를 만든 뒤 검색하여 DataSet의 소스로 넣는다.
DataSet xmlSource = new DataSet(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("learn_link_list.xml")); XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/links/link[@contentsType='XML']"); XmlDocument newXml = new XmlDocument(); newXml.AppendChild(newXml.CreateProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"")); newXml.AppendChild(newXml.CreateElement("links")); foreach (XmlNode node in nodeList) { XmlNode append = newXml.ImportNode(node, true); newXml.DocumentElement.AppendChild(append); } xmlSource.ReadXml(new XmlNodeReader(newXml)); PagedDataSource pds = new PagedDataSource(); pds.DataSource = xmlSource.Tables[0].DefaultView; pds.AllowPaging = true; pds.PageSize = 10; pds.CurrentPageIndex = currentPage; xmlRepeater.DataSource = pds; xmlRepeater.DataBind(); //�~N~X�~]���~U //...
이 문서의 최신 내용은 위키에 있습니다.
- Tag :
- ASP.NET, XML, XmlDataSource, PagedDataSource, XPath, 페이징