我有一个名为strClientNumber的字符串,用于捕获循环中的值,但在循环外,字符串在消除赋值对象后变为NULL。我错过了什么?
bool blnAbsent = true;
string strClientNumber = "";
foreach (SPListItem item in varCustomerNumbers)
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(item["CustomerNumbers"].ToString());
XmlNodeList nodelist = xml.GetElementsByTagName("user");
foreach (XmlNode varUser in nodelist)
{
if (clientnumber == varUser.InnerText)
{
blnAbsent = false;
strClientNumber = varUser.InnerText;
this.Controls.Add(new LiteralControl(" <tr><td>" + varUser.InnerText + "</td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["parent"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["national"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td></tr>\n"));
}
}
}
if (blnAbsent == true)
{
this.Controls.Add(new LiteralControl(" <tr><td>" + strClientNumber + "</td><td><input name=\"\" type=\"checkbox\" /></td><td><input name=\"\" type=\"checkbox\" /></td></tr>\"\n"));
}
答案 0 :(得分:0)
如果您查看评论,您会看到海报接受了讨论中的提示是正确的;但是,海报答案中的解决方案很可能导致不正确的行为。下面的解决方案最有可能产生海报正在寻找的结果,假设客户编号是提前知道的,并且不是空的。
bool blnAbsent = true;
string strClientNumber = "";
foreach (SPListItem item in varCustomerNumbers)
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(item["CustomerNumbers"].ToString());
XmlNodeList nodelist = xml.GetElementsByTagName("user");
foreach (XmlNode varUser in nodelist)
{
if (clientnumber == varUser.InnerText)
{
blnAbsent = false;
this.Controls.Add(new LiteralControl(" <tr><td>" + varUser.InnerText + "</td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["parent"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["national"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td></tr>\n"));
}
}
}
if (blnAbsent == true)
{
this.Controls.Add(new LiteralControl(" <tr><td>" + clientnumber + "</td><td><input name=\"\" type=\"checkbox\" /></td><td><input name=\"\" type=\"checkbox\" /></td></tr>\"\n"));
}
答案 1 :(得分:0)
我是这样的菜鸟......谢谢大家。
bool blnAbsent = true;
string strClientNumber = "";
foreach (SPListItem item in varCustomerNumbers)
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(item["CustomerNumbers"].ToString());
XmlNodeList nodelist = xml.GetElementsByTagName("user");
foreach (XmlNode varUser in nodelist)
{
strClientNumber = clientnumber;
if (clientnumber == varUser.InnerText)
{
blnAbsent = false;
this.Controls.Add(new LiteralControl(" <tr><td>" + varUser.InnerText + "</td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["parent"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td><td><input name=\"\" type=\"checkbox\"\n"));
if (varUser.Attributes["national"].InnerText == "true")
this.Controls.Add(new LiteralControl(" checked\n"));
this.Controls.Add(new LiteralControl("/></td></tr>\n"));
}
}
}
if (blnAbsent == true)
{
this.Controls.Add(new LiteralControl(" <tr><td>" + strClientNumber + "</td><td><input name=\"\" type=\"checkbox\" /></td><td><input name=\"\" type=\"checkbox\" /></td></tr>\n"));
}