Repeater、GridView等 操作XML
生活随笔
收集整理的這篇文章主要介紹了
Repeater、GridView等 操作XML
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Repeater、GridView等 操作XML文件
在項目中需要對XML文件進行管理,我用了Repeater 的方式來實現了實時的更新 希望對閱讀這篇隨筆的您有所幫助,我用的Repeater,您也可以用GridView等...區別僅僅在于控件內的按鈕的事件中獲取當前操作對象索引的方式.. 如果您的XML文檔格式與此不同,建議使用下面的XML格式(因為這個格式能夠通過DataSet的LoadXML方法直接獲得數據源,并且能夠使用DateSet的WriteXML方法輸出XML文檔)或者您可以根基自己的格式重新寫ReadXmlInfo和WriteXMLInfo這兩個方法。 首先是我的XML格式 XML格式<?xml?version="1.0"?standalone="yes"?>
<imgs>
??<pic?name="/adv_pic/1.jpg"?url="http://www.baidu.com/"?title="美國影視中的黑人總統盤點"?/>
??<pic?name="/adv_pic/2.jpg"?url="http://www.baidu.com/"?title="斯琴格日樂--我很好!"?/>
??<pic?name="/adv_pic/3.jpg"?url="http://www.baidu.com/"?title="倫敦金融城市長秀"?/>
??<pic?name="/adv_pic/4.jpg"?url="http://www.baidu.com/"?title="市長大人的金色大馬車"?/>
??<pic?name="/adv_pic/5.jpg"?url="http://www.baidu.com/"?title="英國×××歌劇院藝術家為公益緣何全裸?"?/>
</imgs> HTML? CODE Code
<%@?Register?Assembly="Anthem"?Namespace="Anthem"?TagPrefix="anthem"?%>
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml"?>
<head?runat="server">
????<title>flash櫥窗管理</title>
????<meta?name="GENERATOR"?content="Microsoft?Visual?Studio?.NET?7.1">
????<meta?name="CODE_LANGUAGE"?content="C#">
????<meta?name="vs_defaultClientScript"?content="JavaScript">
????<meta?name="vs_targetSchema"?content="http://schemas.microsoft.com/intellisense/ie5">
????<link?href="../css/css.css"?type="text/css"?rel="stylesheet">
</head>
<body>
????<form?id="form1"?runat="server">
????<div?style="text-align:center;">
?????????<anthem:Repeater?ID="Repeater1"?runat="server"?AutoUpdateAfterCallBack="true">
????????????????????<HeaderTemplate>
????????????????????????<table?class="DataList"?cellspacing="0"?rules="all"?border="1"?id="Datagrid2"?style="width:?100%;
????????????????????????????border-collapse:?separate;">
????????????????????????????<tr?class="DataList_Head"?align="Left">
????????????????????????????????<td?align="center"?style="width:?2%;">
????????????????????????????????????編號</td>
????????????????????????????????<td?align="center"?style="width:?30%;">
????????????????????????????????????標題</td>
????????????????????????????????<td?align="center"?style="width:?30%;">
????????????????????????????????????地址</td>
????????????????????????????????<td?align="center"?style="width:?30%;">
????????????????????????????????????圖片</td>
????????????????????????????????<td?align="center"?style="width:?8%;">
????????????????????????????????????操作</td>
????????????????????????????</tr>
????????????????????</HeaderTemplate>
????????????????????<ItemTemplate>
????????????????????????<tr?class="DataList_Item"?align="Left">
????????????????????????????<td?align="center"?style="width:?2%;">
????????????????????????????????????<%#Container.ItemIndex%></td>
????????????????????????????<td?align="center"?style="width:?30%;">
????????????????????????????????<a?href='<%#?DataBinder.Eval(Container.DataItem,"url")%>'
????????????????????????????????????target="_blank"><%#?DataBinder.Eval(Container.DataItem,"title")%></a>
????????????????????????????</td>
????????????????????????????<td?align="center"?style="width:?30%;">
????????????????????????????<a?href='<%#?DataBinder.Eval(Container.DataItem,"url")%>'
????????????????????????????????????target="_blank">
????????????????????????????????<%#DataBinder.Eval(Container.DataItem,?"url").ToString()%></a>
????????????????????????????</td>
????????????????????????????<td?align="center"??style="width:?30%;">
????????????????????????????????<a?href='<%#?DataBinder.Eval(Container.DataItem,"name")%>'
????????????????????????????????????target="_blank"><%#?DataBinder.Eval(Container.DataItem,"name")%></a>
????????????????????????????</td>
????????????????????????????<td?align="center"??style="width:?10%;">
????????????????????????????<anthem:LinkButton?Text="修改"?ID="btn_Edit"?OnClick="btn_Edit_Click"?runat="server"?ToolTip='<%#Container.ItemIndex%>'></anthem:LinkButton>
????????????????????????????????<anthem:LinkButton?Text="刪除"?ID="btn_Delete"?OnClick="btn_Delete_Click"?PreCallBackFunction="function?(){return?confirm('確定刪除?');}"?runat="server"?ToolTip='<%#Container.ItemIndex%>'></anthem:LinkButton>
????????????????????????????</td>
????????????????????????</tr>
????????????????????</ItemTemplate>
????????????????????<FooterTemplate>
????????????????????????</table>
????????????????????</FooterTemplate>
???????????</anthem:Repeater>
???????????<table?width="90%"?cellpadding="5"?bgcolor="#e7ecce"?border="1">
???????????<tr>
????????????????<td?align="center"?colspan="2">
????????????<anthem:Label?ID="Txt_TableTitle"?runat="server"?AutoUpdateAfterCallBack="true"?Text="添加新項"></anthem:Label>
????????????<anthem:HiddenField?ID="Txt_ItemIndex"?runat="server"?AutoUpdateAfterCallBack="true"?/>
????????????????</td>
???????????</tr>
????????????<tr>
????????????????<td?align="right">
????????????????????標題:
????????????????</td>
????????????????<td?align="left">
????????????????????<anthem:TextBox?ID="Txt_title"?runat="server"?AutoUpdateAfterCallBack="true"?Width="301px"></anthem:TextBox></td>
????????????</tr>
????????????<tr>
????????????????<td?align="right">
????????????????????地址:</td>
????????????????<td?align="left">
????????????????????<anthem:TextBox?ID="Txt_url"?runat="server"?AutoUpdateAfterCallBack="true"?Width="301px"></anthem:TextBox></td>
????????????</tr>
????????????<tr>
????????????????<td?align="right">
????????????????????圖片地址</td>
????????????????<td?align="left">
????????????????????<anthem:TextBox?ID="Txt_name"?runat="server"?Width="303px"?AutoUpdateAfterCallBack="true"></anthem:TextBox></td>
????????????</tr>
????????????<tr>
????????????????<td?align="center"?colspan="2">
????????????????????<anthem:Button?ID="Btn_Submit"?runat="server"?Text="?確?定?"?CssClass="button"?OnClick="Btn_Submit_Click"?AutoUpdateAfterCallBack="true"?/>
???????????????????? ? ? ? ? ? ? ? ? ? ? ?
???????????????????? ?
????????????????????<anthem:Button?ID="BtnBack"?runat="server"?Text="?取?消?"?CssClass="button"?OnClick="BtnBack_Click"?/></td>
????????????</tr>
????????</table>
????</div>
????</form>
</body>
</html>
然后貼C# code 使用的是Anthem控件,不使用Anthem控件的朋友可以使用常規控件,不影響效果 C# 的Code
using?System;
using?System.Data;
using?System.Configuration;
using?System.Collections;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Web.UI.HtmlControls;
using?System.Xml;
using?System.IO;
namespace?test
{
????public?partial?class?shopWindowMar?:?System.Web.UI.Page
????{
????????private?static?string?ImgUrl?=?"/adv_pic";
????????private?static?string?XmlUrl?=?"/xml/TheXml.xml";
????????private?static?DataSet?ds?=??new?DataSet();
????????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
????????????if?(!Page.IsPostBack)
????????????{
????????????????ReadXmlInfo();//讀取XML文件并綁定到Repeater
????????????}
????????}
????????//讀取XML文件并綁定到Repeater
????????public?void?ReadXmlInfo()
????????{
????????????ds.Tables.Clear();
????????????ds.ReadXml(Server.MapPath(XmlUrl));
????????????Repeater1.DataSource?=?ds.Tables[0].DefaultView;
????????????Repeater1.DataBind();
????????}
????????//從ds數據源重寫XML文件
????????public?void?WriteXMLInfo()
????????{
????????????ds.WriteXml(Server.MapPath(XmlUrl));
????????}
????????//刪除某節點
????????protected?void?btn_Delete_Click(object?sender,?EventArgs?e)
????????{
????????????Anthem.LinkButton?aButton?=?sender?as?Anthem.LinkButton;
????????????ds.Tables[0].Rows.RemoveAt(int.Parse(aButton.ToolTip.ToString()));
????????????WriteXMLInfo();
????????????ReadXmlInfo();
????????}
????????//修改某節點,初始化修改表單數據
????????protected?void?btn_Edit_Click(object?sender,?EventArgs?e)
????????{
????????????Anthem.LinkButton?aButton?=?sender?as?Anthem.LinkButton;
????????????int?ItemIndex?=?int.Parse(aButton.ToolTip.ToString());
????????????Txt_TableTitle.Text?=?"修改現有第"?+?ItemIndex.ToString()?+?"個項目";
????????????Btn_Submit.Text?=?"?修?改?";
????????????Txt_title.Text?=?ds.Tables[0].Rows[ItemIndex]["title"].ToString();
????????????Txt_name.Text?=?ds.Tables[0].Rows[ItemIndex]["name"].ToString();
????????????Txt_url.Text?=?ds.Tables[0].Rows[ItemIndex]["url"].ToString();
????????????Txt_ItemIndex.Value?=?ItemIndex.ToString();
????????}
????????//提交表單內容,進行新增或修改
????????protected?void?Btn_Submit_Click(object?sender,?EventArgs?e)
????????{
????????????if?(Txt_ItemIndex.Value.ToString()?!=?"")
????????????{
????????????????int?EditIndex?=?int.Parse(Txt_ItemIndex.Value.ToString());
????????????????ds.Tables[0].Rows[EditIndex]["name"]?=?Txt_name.Text.ToString();
????????????????ds.Tables[0].Rows[EditIndex]["title"]?=?Txt_title.Text.ToString();
????????????????ds.Tables[0].Rows[EditIndex]["url"]?=?Txt_url.Text.ToString();
????????????}
????????????else
????????????{
????????????????DataRow?dr?=?ds.Tables[0].NewRow();
????????????????dr["name"]?=?Txt_name.Text.ToString();
????????????????dr["title"]?=?Txt_title.Text.ToString();
????????????????dr["url"]?=?Txt_url.Text.ToString();
????????????????ds.Tables[0].Rows.Add(dr);
????????????}
????????????WriteXMLInfo();
????????????ReadXmlInfo();
????????????initTxtTable();
????????}
????????//取消修改按鈕事件
????????protected?void?BtnBack_Click(object?sender,?EventArgs?e)
????????{
????????????initTxtTable();
????????}
????????//重置表單內容
????????public?void?initTxtTable()
????????{
????????????Txt_url.Text?=?"";
????????????Txt_title.Text?=?"";
????????????Txt_name.Text?=?"";
????????????Txt_ItemIndex.Value?=?"";
????????????Txt_TableTitle.Text?=?"添加新項";
????????????Btn_Submit.Text?=?"?添?加?";
????????}
????}
}
轉載于:https://blog.51cto.com/mixangel/128731
總結
以上是生活随笔為你收集整理的Repeater、GridView等 操作XML的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 又一年。继续IT。
- 下一篇: UpdatePanel控件的简单属性学习