私はaspの初心者ですが、テーブルの動的更新を実行しようとすると、奇妙な問題が発生します。
最初にページの読み込み時に、xmlファイルからデータを取得してテーブルに追加します。この部分は問題なく、データはページに表示されています。
2番目の部分は、テーブルの更新されたデータをファイルに書き戻そうとすると、空のファイルが返されます。デバッグモードで値を確認した後、HtmlTableインスタンスを取得し、Row属性を確認すると、ヘッダー行である行が1つしかないようです。
テーブル宣言の添付:
<table id="users" class="ui-widget ui-widget-content" runat="server">
<thead>
<tr class="ui-widget-header ">
<th>Title</th>
<th>Link From Ibms</th>
<th>Dismiss</th>
</tr>
</thead>
</table>
サーバーの読み取りおよび書き込み機能:
private void readLinkXml()
{
if (!File.Exists(path)) // no file.
return;
XmlTextReader reader = new XmlTextReader(path);
reader.WhitespaceHandling = WhitespaceHandling.None;
// reader.Read();
while (!reader.EOF) // load loop
{
if ((reader.Name == "ChannelMap" && !reader.IsStartElement()))
{
break;
}
while ((reader.Name != "links" || !reader.IsStartElement()))
reader.Read(); // advance to next <links> tag
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell title = new HtmlTableCell();
title.InnerHtml = reader.GetAttribute("TITLE"); // get link title.
row.Cells.Add(title);
HtmlTableCell link = new HtmlTableCell();
link.InnerHtml = reader.GetAttribute("VOD_URL"); // get link url.
row.Cells.Add(link);
HtmlTableCell buttonCell = new HtmlTableCell();
buttonCell.Attributes.Add("id", "table_button");
row.Cells.Add(buttonCell);
users.Rows.Add(row); // add xml asset as row in link table.
reader.Read(); // and now either at <links> tag or </ChannelMap
}
reader.Close();
}
private void writeLinksXml()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = " ";
settings.NewLineChars = "\r\n";
settings.NewLineHandling = NewLineHandling.Replace;
XmlWriter writer = XmlWriter.Create(path, settings);
writer.WriteStartDocument();
writer.WriteStartElement("ChannelMap");
bool first = true;
foreach (HtmlTableRow row in users.Rows)
{
if (first)
{
first = false;
continue;
}
writer.WriteStartElement("links");
writer.WriteAttributeString("TITLE", row.Cells[0].InnerText);
writer.WriteAttributeString("VOD_URL", row.Cells[1].InnerText);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
テーブルに追加したばかりのデータを取得できない理由を誰かが知っていますか?
ありがとう、
モシェ