Ok - I see:
You are correct. The list nodelist is only iterated once for 1 id. Try wrapping this in a
for
loop:
if the id is being iterated
for(int x= 0;x<doc.SelectNodes("TourInfo/AddOns/AddOn").Count;x++)
{
string addon;
XmlNodeList nodeListADDon = doc.SelectNodes("TourInfo/AddOns/AddOn[@Id='addon" + x + "']");
litTotal.Text = "";
litAdd.Text = "";
foreach (XmlNode nodeA in nodeListADDon)
{
addon = Request.Form["txtAddonAntal" + x];
antal = int.Parse(addon.ToString());
pris = int.Parse(nodeA["AddonPrice"].InnerText);
ansver += antal * pris;
total += ansver;
litTotal.Text += total.ToString() + " kr";
string text = "<table class="table table-condensed"><tr>"
text += "<td>" + nodeA["AddonText"].InnerText + "</td>"
text += "<td>" + antal.ToString() + "</td>"
text += "<td>Pris: " + ansver.ToString()
text += " kr</td>"
text += "</tr></table><br />";
litAdd.Text = text;
}
}
UPDATE: I now have access to the OP source and code:
private static void testsss()
{
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\3rd Party\testsss.xml");
int total = 0;
litTotal.Text = "";
litAdd.Text = "";
var allAddonNodes = doc.SelectNodes("TourInfo/AddOns/AddOn");
if (allAddonNodes == null)
return;
for (int x = 0; x < allAddonNodes.Count; x++)
{
string textBoxname = string.Format("txtAddonAntal{0}", x);
XmlNode addonNode = allAddonNodes[x];
if (addonNode["AddonPrice"] == null)
continue;
int antal;
if (!int.TryParse(Request.Form[textBoxname], out antal))
continue;
int pris;
if (!int.TryParse(addonNode["AddonPrice"].InnerText, out pris))
continue;
var ansver = antal * pris;
total += ansver;
var nodeAAddonText = addonNode["AddonText"];
string nodeAInnerText = nodeAAddonText == null ? "" : nodeAAddonText.InnerText;
litAdd.Text = string.Format(FormatText, nodeAInnerText, antal, ansver);
}
litTotal.Text = total + @" kr";
}
FINAL UPDATE: Some ideas about litAdd:
private static void testsss()
{
StringBuilder sb = new StringBuilder();
HtmlTextWriter writer = new HtmlTextWriter( new StringWriter(sb,CultureInfo.InvariantCulture));
HtmlTable table = new HtmlTable();
table.Attributes.Add("class", "table table-condensed");
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\3rd Party\testsss.xml");
int total = 0;
litTotal.Text = "";
litAdd.Text = "";
var allAddonNodes = doc.SelectNodes("TourInfo/AddOns/AddOn");
if (allAddonNodes == null)
return;
for (int x = 0; x < allAddonNodes.Count; x++)
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell;
string textBoxname = string.Format("txtAddonAntal{0}", x);
XmlNode addonNode = allAddonNodes[x];
if (addonNode["AddonPrice"] == null)
continue;
int antal;
if (!int.TryParse(RequestForm[textBoxname], out antal))
continue;
int pris;
if (!int.TryParse(addonNode["AddonPrice"].InnerText, out pris))
continue;
var ansver = antal * pris;
total += ansver;
var nodeAAddonText = addonNode["AddonText"];
string nodeAInnerText = nodeAAddonText == null ? "" : nodeAAddonText.InnerText;
cell = new HtmlTableCell();
cell.InnerText = nodeAInnerText;
row.Cells.Add(cell);
cell = new HtmlTableCell();
cell.InnerText = antal.ToString();
row.Cells.Add(cell);
cell = new HtmlTableCell();
cell.InnerText = string.Format("Pris: {0} kr", ansver);
row.Cells.Add(cell);
table.Rows.Add(row);
}
table.RenderControl(writer);
litAdd.Text = sb.ToString();
litTotal.Text = total + @" kr";
}