用xml存储数据。用户发表留言后,后台管理员针对每一留言进行回复。问题:1、如何给每一条留言设置一个自增的ID,即设置xml的节点属性ID为自增的,我试着用UniqueId,但不知道怎么用。让用户的留言和管理员的回复一一对应起来显示在网页中?2、怎么实现让用户只能看到自己的留言?给Repeater绑定数据怎么绑?3、后台管理员回复某一留言后,如何将对应的GridView控件中的“是否回复”列的值设置为“是”?小女子刚学.net不长时间,技术还很菜,问题可能很弱智,希望懂这方面的高手赐教。万分感谢哦!!
解决方案 »
- 无法处理消息。这很可能是因为操作“http://tempuri.org/IHQS_demo/test”不正确,或因为消息包含无效或过期的安全上下文令牌
- 在vn ent中,如何利用treeview和listview实习资源管理界面,
- 为什么性别无法对应选中呢?
- 请问如何将DataGrilView中的数据导入DataSet,然后写如数据库
- 一个技术问题
- 来抢分哦
- 经典算法-C#四种排序算法
- 一个数组如何和三个数组比较?
- 请问一个小问题:添加一个表的新记录如何用代码实现按顺序给他自动获取当前序列号?
- 【第一次发帖】问个有关网页源代码获取和Stream类的问题
- 关于CommandType的问题。
- 如何得到其他进程中 ListView 的子项位置信息?
针对问题2. XML->DataTable然后进行过滤 Repeater的绑定数据比较简单
针对问题3. 你只需要再加一个xml结点就可以了 回复后修改这个结点的状态我还是推荐用数据库
using System.Xml;
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.Xml.Xsl;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class ViewMessage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 创建一个XmlDocument对象以载入存储信息的XML文件
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("MessageBoard.xml")); // 创建一个XslTransform对象并导入XSL文件
XslCompiledTransform xslt = new XslCompiledTransform();
//XslTransform xslt = new XslTransform(); //XslTransform已过时 xslt.Load(Server.MapPath("MessageBoard.xsl"));
string xmlQuery = "//MessageBoard";
XmlNodeList nodeList = xdoc.DocumentElement.SelectNodes(xmlQuery);
MemoryStream ms = new MemoryStream();
xslt.Transform(xdoc, null, ms);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms); // 显示输出结果
Response.Write(sr.ReadToEnd());
}
}
<head runat="server">
<title>我的留言薄——灵雨飘零</title>
<script language="javascript" type="text/javascript">
</script></head>
<body bgcolor="#fef4d9" onLoad="showtime()">
<script language="javascript">function showtime()
{
var ary = new Array(
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六");
time=new Date();
syear=time.getYear();
smonth=time.getMonth()+1;
sday=time.getDate();
sweek=time.getDay();
h=time.getHours();
m=time.getMinutes();
s=time.getSeconds();
var sminute;
if(m<10)
sminute="0"+m;
else
sminute=m;
tip.innerText=" "+syear+"年"+smonth+"月"+sday+"日 "+ary[sweek]+" "+h+":"+sminute;
setTimeout("showtime()",1000);
}
</script>
<form id="form1" runat="server">
<div>
<center>
<table align="center";style="border-right: purple thin solid; border-top: purple thin solid; border-left: purple thin solid; border-bottom: purple thin solid">
<tr>
<td colspan="4" style="height:80px; text-align: left; background-color: purple;">
<strong><span style="color: #ff0033;"><span style="color: #ffffff; font-size: 24pt; border-right-style: none;">
欢迎访问我的留言簿!</span></span></strong></td>
</tr>
<tr>
<td nowrap id='tip' colspan="4" style="height:40px; font-weight: bold; vertical-align: top; color: navy; text-align: right; text-decoration: underline;">
</td>
</tr>
<tr>
<td style="width:120px; text-align: center;" >
用 户 名:</td>
<td style="width:28px; text-align: left;">
<asp:TextBox ID="txtName" runat="server" Width="170px"></asp:TextBox></td>
<td style="width:200px; text-align: left;">
<span style="font-size: 10pt; color: #ff0000">*用户名不能为空</span></td>
<td style="width:150px">
</td>
</tr>
<tr>
<td style="text-align: center; width: 120px;">
Email地址:</td>
<td style="width: 28px; text-align: left">
<asp:TextBox ID="txtEmail" runat="server" Width="170px"></asp:TextBox></td>
<td style="width: 200px; text-align: left;">
<span style="font-size: 10pt; color: #ff0000"></span></td>
<td style="width: 150px">
</td>
</tr>
<tr>
<td style="text-align: center; width: 120px;">
Q Q 号码:</td>
<td style="width: 28px; text-align: left">
<asp:TextBox ID="txtQQ" runat="server" Width="170px"></asp:TextBox></td>
<td style="width: 200px; text-align: left;">
<span style="font-size: 10pt; color: #ff0000"></span></td>
<td style="width: 150px">
</td>
</tr>
<tr>
<td style="text-align: center; width: 120px;">
个人主页:</td>
<td style="text-align: left" colspan="2">
<asp:TextBox ID="txtPage" runat="server" Width="370px"></asp:TextBox></td>
<td style="width: 150px; text-align: left;">
<span style="font-size: 10pt; color: #ff0000"></span></td>
</tr> <tr style="height:160">
<td style="text-align: center; vertical-align: top; width: 120px; height: 200px;">
留言信息:</td>
<td style="vertical-align: top; height: 200px; text-align: left" colspan="2" >
<asp:TextBox ID="txtMessage" runat="server" Height="190px" TextMode="MultiLine" Width="370px"></asp:TextBox></td>
<td style="vertical-align: top; width: 150px; height: 200px; text-align: left">
<span style="font-size: 10pt; color: #ff0000">*留言信息不能为空<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<asp:Button ID="Button3"
runat="server" Text="查看留言薄" OnClick="Button3_Click" /></span></td>
</tr>
<tr>
<td colspan="4" style="width:640px; height:40px">
<asp:Button ID="Button1" runat="server" Text="提 交" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="重 置" OnClick="Button2_Click" /> </td>
</tr>
<tr>
<td colspan="4" style="width:640prx; height:20px">
<hr />
|
<asp:HyperLink ID="HyperLink1" runat="server" Font-Size="Small" NavigateUrl="~/About.aspx">关于我们</asp:HyperLink>
|
<asp:HyperLink ID="HyperLink2" runat="server" Font-Size="Small" NavigateUrl="http://kingboy.cc.topzj.com">技术论坛</asp:HyperLink>
|
<asp:HyperLink ID="HyperLink3" runat="server" Font-Size="Small" NavigateUrl="mailto:[email protected]">联系我们</asp:HyperLink>
|
<asp:HyperLink ID="HyperLink4" runat="server" Font-Size="Small" NavigateUrl="~/MessageBoard.aspx">给我留言</asp:HyperLink>
|</td>
</tr>
<tr>
<td colspan="4" style="width:640px; color: blue;">
<asp:Label ID="Label1" runat="server" Font-Size="Small" Text="=★灵雨飘零论坛★="></asp:Label></td>
</tr>
<tr>
<td colspan="4" style="width:640px">
<asp:Label ID="lblCopyRight" runat="server" Font-Size="Small" ForeColor="Red" Text="Label"></asp:Label></td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>
using System.Data;
using System.Configuration;
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.Xml.Xsl;
using System.IO;
using System.Collections;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.lblCopyRight.Text = "CopyRight @ 2007~"+DateTime.Now.Year+" All Rights Reserved.";
} protected void Button1_Click(object sender, EventArgs e)
{
if (this.txtName.Text == "")
{
Response.Write("<script lanuage=javascript>alert('用户名不能为空!');location='javascript:history.go(-1)'</script>"); }
if (this.txtMessage.Text == "")
{
Response.Write("<script lanuage=javascript>alert('请填写留言信息!');location='javascript:history.go(-1)'</script>");
}
else
{
SaveMessage();
this.txtEmail.Text = "";
this.txtMessage.Text = "";
this.txtName.Text = "";
this.txtPage.Text = "";
this.txtQQ.Text = "";
} }
protected void Button2_Click(object sender, EventArgs e)
{
this.txtEmail.Text = "";
this.txtMessage.Text = "";
this.txtName.Text = "";
this.txtPage.Text = "";
this.txtQQ.Text = "";
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("ViewMessage.aspx");
} private void SaveMessage()
{
try
{
// 创建一个XmlDocument对象,用于载入存储信息的XML文件
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("MessageBoard.xml")); // 创建一个新的guest节点并将它添加到根节点下
XmlElement parentNode = xmlDoc.CreateElement("guest");
xmlDoc.DocumentElement.PrependChild(parentNode); // 创建所有用于存储信息的节点
XmlElement nameNode = xmlDoc.CreateElement("name");
XmlElement emailNode = xmlDoc.CreateElement("email");
XmlElement qqNode = xmlDoc.CreateElement("qq");
XmlElement pageNode = xmlDoc.CreateElement("page");
XmlElement contentNode = xmlDoc.CreateElement("content"); // 获取文本信息
XmlText nameText = xmlDoc.CreateTextNode(this.txtName.Text);
XmlText emailText = xmlDoc.CreateTextNode(this.txtEmail.Text);
XmlText qqText = xmlDoc.CreateTextNode(this.txtQQ.Text);
XmlText pageText = xmlDoc.CreateTextNode(this.txtPage.Text);
XmlText contentText = xmlDoc.CreateTextNode(this.txtMessage.Text); // 将上面创建的各个存储信息的节点添加到guest节点下但并不包含最终的值
parentNode.AppendChild(nameNode);
parentNode.AppendChild(emailNode);
parentNode.AppendChild(qqNode);
parentNode.AppendChild(pageNode);
parentNode.AppendChild(contentNode); // 将上面获取的文本信息添加到与之相对应的节点中
nameNode.AppendChild(nameText);
emailNode.AppendChild(emailText);
qqNode.AppendChild(qqText);
pageNode.AppendChild(pageText);
contentNode.AppendChild(contentText); // 保存存储信息的XML文件
xmlDoc.Save(Server.MapPath("MessageBoard.xml"));
// 显示所有用户的留言信息
Response.Redirect("ViewMessage.aspx");
}catch(Exception e)
{
Response.Write(e.Message);
} }
}