我试图弄清楚(不幸的是不成功)是如何检测用户是否在编写 asp:textBox 时创建了一个新段落,然后将此信息保存在 xml 中以在页面上正确显示(例如<br />
在读取 xml 并通过转发器将其呈现在页面上时替换为s)。
这是我的textBox
:
<div><asp:TextBox ID="EdtMessage" Columns="56" Rows="7" TextMode="MultiLine" runat="server" /></div>
这就是我编写 xml 的方式:
var file = Server.MapPath("~/_xml/messages.xml");
var message = new XElement("contact",
new XElement("name", s_name.Trim()),
new XElement("message", s_message.Trim()),
new XElement("date", System.DateTime.Today.ToShortDateString()),
new XElement("dateOrder", DateTime.Now.ToString()));
var doc = new XDocument();
if (ckeckFileExistance(file))
{
doc = XDocument.Load(file);
doc.Element("messages").Add(message);
}
else
{
doc = new XDocument(new XElement("messages", message));
}
doc.Save(file);
这就是我阅读xml的方式:
DataSet messages = new DataSet();
try
{
XDocument doc = XDocument.Load(MapPath("~/_xml/messages.xml"));
/*messages.ReadXml(MapPath("~/_xml/messages.xml"));*/
myMessages.DataSource = doc.Elements("messages").Elements("contact").OrderByDescending(m => DateTime.Parse(m.Element("dateOrder").Value));
myMessages.DataBind();
}
[编辑] 这是我的中继器:
<asp:Repeater ID="myMessages" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div class="message">
<div class="messageHeader">
<span><p><b><%# DataBinder.Eval(((XElement)Container.DataItem).Element("name"), "Value")%></b> wrote:</p></span><div class="date"><p><%# DataBinder.Eval(((XElement)Container.DataItem).Element("date"), "Value")%></p></div>
</div>
<div class="splitLine"></div>
<br />
<div class="messageText">
<span><p><%# DataBinder.Eval(((XElement)Container.DataItem).Element("message"), "Value")%></p></span>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>