简单xml 留言本

Message.xml

<?xml version="1.0" encoding="utf-8"?>
<body num="1">
  <message>
    <ID>1</ID>
    <username>fasfd</username>
    <content>asdfsadf</content>
    <addtime>2010-08-09 17:58:05</addtime>
    <isdel>0</isdel>
  </message>
</body>

读取xml绑定repeater

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
protected void messagebind() {
DataTable dt
= new DataTable( " dt " );
DataColumn dc
= new DataColumn( " ID " );
dt.Columns.Add(dc);
dc
= new DataColumn( " username " );
dt.Columns.Add(dc);
dc
= new DataColumn( " content " );
dt.Columns.Add(dc);
dc
= new DataColumn( " addtime " );
dt.Columns.Add(dc);
XmlDocument xmlDoc
= new XmlDocument();
xmlDoc.Load(Server.MapPath(
" Message.xml " ));

XmlNodeList xnl
= xmlDoc.SelectNodes( " //body/message[isdel='0'] " ); // 条件
for ( int i = 0 ; i < xnl.Count; i ++ )
{
string id = xnl.Item(i).ChildNodes[ 0 ].InnerText;
string username = xnl.Item(i).ChildNodes[ 1 ].InnerText;
string content = xnl.Item(i).ChildNodes[ 2 ].InnerText;
string addtime = xnl.Item(i).ChildNodes[ 3 ].InnerText;
DataRow dr
= dt.NewRow();
dr[
" ID " ] = id;
dr[
" username " ] = username;
dr[
" content " ] = content;
dr[
" addtime " ] = addtime;
dt.Rows.Add(dr);
}


ViewState[
" RecordCount " ] = dt.Rows.Count ; // 记录数
ViewState[ " PageSize " ] = 3 ;
ViewState[
" PageIndex " ] = Common.Request.GetInt( " p " , 1 );
if ( Convert.ToInt32( ViewState[ " PageIndex " ]) > (Convert.ToInt32(ViewState[ " RecordCount " ]) / Convert.ToInt32(ViewState[ " PageSize " ]) + 1 ))
{
ViewState[
" PageIndex " ] = 1 ;
}

this .repeater1.DataSource = GetPagedTable(dt, Convert.ToInt32(ViewState[ " PageIndex " ]), Convert.ToInt32(ViewState[ " PageSize " ]));
this .repeater1.DataBind();
this .CustomPager1.UrlManager = new DefaultUrlManager(Convert.ToInt32(ViewState[ " RecordCount " ]), Convert.ToInt32(ViewState[ " PageSize " ]), " p " );


}

添加:

 

ContractedBlock.gifExpandedBlockStart.gif代码
 
    
protected void Button1_Click( object sender, EventArgs e)
{
string username = this .txt_username.Text.Trim();
string content = this .txt_content.Text.Trim();

XmlDocument xmlDoc
= new XmlDocument();
xmlDoc.Load(Server.MapPath(
" Message.xml " )); // 加载文件
XmlNode root = xmlDoc.SelectSingleNode( " body " ); // 查找<dbGuest>
XmlElement xml_message = xmlDoc.CreateElement( " message " ); // 创建一个<community>节点
XmlElement xml_ID = xmlDoc.CreateElement( " ID " ); // 创建一个<community>节点
XmlElement xml_username = xmlDoc.CreateElement( " username " ); // 创建一个<community>节点
XmlElement xml_content = xmlDoc.CreateElement( " content " ); // 创建一个<community>节点
XmlElement xml_addtime = xmlDoc.CreateElement( " addtime " ); // 创建一个<community>节点
XmlElement xml_isdel = xmlDoc.CreateElement( " isdel " ); // 创建一个<isdel>节点

string num = root.Attributes[ " num " ].Value; // body 的num属性表示总数
xml_ID.InnerText = Convert.ToString(Convert.ToInt32(num) + 1 );
root.Attributes[
" num " ].Value = xml_ID.InnerText;
xml_username.InnerText
= username;
xml_content.InnerText
= content;
xml_addtime.InnerText
= DateTime.Now.ToString();
xml_isdel.InnerText
= " 0 " ;

xml_message.AppendChild(xml_ID);
xml_message.AppendChild(xml_username);
xml_message.AppendChild(xml_content);
xml_message.AppendChild(xml_addtime);
xml_message.AppendChild(xml_isdel);
root.PrependChild(xml_message);
xmlDoc.Save(Server.MapPath(
" Message.xml " )); // 保存文件
this .txt_content.Text = string .Empty;
this .txt_username.Text = string .Empty;
// Common.JsUtil.ShowMsg("提交成功!", "Default.aspx");
messagebind();
}

 

删除:
ContractedBlock.gifExpandedBlockStart.gif代码
 
    
protected void repeater1_ItemCommand( object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == " del " )
{
string id = e.CommandArgument.ToString();
/// /Response.Write(id);
// this.Label1.Text = id;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath(
" Message.xml " ));

XmlNodeList xnl
= xmlDoc.SelectNodes( string .Format( " //body/message[ID='{0}'] " ,id)); // 条件
xnl.Item( 0 ).ChildNodes[ 4 ].InnerText = " 1 " ;

xmlDoc.Save(Server.MapPath(
" Message.xml " )); // 保存文件
messagebind();
}
}

 

ContractedBlock.gifExpandedBlockStart.gif代码
 
    
public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)
{
if (PageIndex == 0 )
return dt;
DataTable newdt
= dt.Copy();
newdt.Clear();

int rowbegin = (PageIndex - 1 ) * PageSize;
int rowend = PageIndex * PageSize;

if (rowbegin >= dt.Rows.Count)
return newdt;

if (rowend > dt.Rows.Count)
rowend
= dt.Rows.Count;
for ( int i = rowbegin; i <= rowend - 1 ; i ++ )
{
DataRow newdr
= newdt.NewRow();
DataRow dr
= dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName]
= dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}

return newdt;
}

 

写的不好,请高手多多指教

     

转载于:https://www.cnblogs.com/princeback/archive/2010/08/10/1796228.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值