C# Split()函数不是';t给出输出
代码中有什么错误。。?它不起作用了 实际上,我想从数据库的一个字段中拆分条目。。其中的项目用逗号分隔 这就是我正在做的C# Split()函数不是';t给出输出,c#,asp.net,C#,Asp.net,代码中有什么错误。。?它不起作用了 实际上,我想从数据库的一个字段中拆分条目。。其中的项目用逗号分隔 这就是我正在做的 string str = dataSet.Tables[0].Rows[0]["Ingredients"].ToString(); string[] split = str.Split(','); IList<string> lblListItemIngredients = new List<string>(); foreach (string it
string str = dataSet.Tables[0].Rows[0]["Ingredients"].ToString();
string[] split = str.Split(',');
IList<string> lblListItemIngredients = new List<string>();
foreach (string item in split)
{
lblListItemIngredients.Add(item);
}
string str=dataSet.Tables[0]。行[0][“配料”]。ToString();
string[]split=str.split(',');
IList lbllistitemingElements=新列表();
foreach(拆分中的字符串项)
{
lbllistiteMingElements.Add(项目);
}
在我的aspx页面中
<ul>
<li>
<asp:label id="lblListItemIngredients" runat="server></asp:Label>
</li>
</ul>
-
您必须以某种方式将列表中的数据发送到控件。这并不是因为您给了一个变量与控件id同名而神奇地发生的
实际上,您应该为变量使用不同的名称,否则它将隐藏已添加到页面对象的属性
如果您想创建一个HTML列表,那么在一个列表项中放置一个标签是不够的,这不会为每个字符串创建一个列表项。您可以使用中继器:
<ul>
<asp:Repeater id="lblListItemIngredients" runat="server">
<ItemTemplate>
<li><%# Container.DataItem %></li>
</ItemTemplate>
</asp:Repeater>
</ul>
您必须以某种方式将列表中的数据发送到控件。这并不是因为您给了一个变量与控件id同名而神奇地发生的
实际上,您应该为变量使用不同的名称,否则它将隐藏已添加到页面对象的属性
如果您想创建一个HTML列表,那么在一个列表项中放置一个标签是不够的,这不会为每个字符串创建一个列表项。您可以使用中继器:
<ul>
<asp:Repeater id="lblListItemIngredients" runat="server">
<ItemTemplate>
<li><%# Container.DataItem %></li>
</ItemTemplate>
</asp:Repeater>
</ul>
当您应该使用类似于asp:ListBox
的控件时,您正在页面标记中使用asp:label
控件。从代码中删除IList
声明
向列表框添加字符串数组的更好方法如下:
首先,在标记中,将不正确的控件引用更改为列表框:
<asp:ListBox id="IngredientList" runat="server"></asp:ListBox>
此方法消除了markkup中不正确的标签控件,并从代码隐藏中消除了原始版本中的手动迭代和不必要的IList声明。希望这能有所帮助。您在页面标记中使用的是asp:label
控件,而您应该使用类似asp:ListBox
的控件。从代码中删除IList
声明
向列表框添加字符串数组的更好方法如下:
首先,在标记中,将不正确的控件引用更改为列表框:
<asp:ListBox id="IngredientList" runat="server"></asp:ListBox>
此方法消除了markkup中不正确的标签控件,并从代码隐藏中消除了原始版本中的手动迭代和不必要的IList声明。希望这能有所帮助。你应该用asp:ListBox而不是Label你应该用asp:ListBox而不是LabelGuffa已经开始使用了,但只是为了完整性,因为它符合你一开始做这件事的精神:-)
如果您将分数更新到:
<ul>
<asp:Literal id="literalIngredients" runat="server" />
</ul>
Guffa已经开始了,但只是为了完整性,因为它符合你最初的精神:——)
如果您将分数更新到:
<ul>
<asp:Literal id="literalIngredients" runat="server" />
</ul>
你想在这里干什么?您正在将字符串添加到IList
,但页面上有一个与列表同名的标签。首先重命名IList引用
,然后使用lbllistitemingCreditions.Text访问标签
…您的runat
中的引号也不匹配<代码>我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。你想在这里做什么?您正在将字符串添加到IList
,但页面上有一个与列表同名的标签。首先重命名IList引用
,然后使用lbllistitemingCreditions.Text访问标签
…您的runat
中的引号也不匹配<代码>我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。恕我直言,您不必将列表用作控件的数据源。以迭代方式添加项目是合法的,但是OP没有正确地进行操作。@DavidW:是的,你是对的。我已经更改了措辞,将重点放在问题上。恕我直言,您不必将列表用作控件的数据源。以迭代方式添加项目是合法的,但是OP没有正确地进行操作。@DavidW:是的,你是对的。我改变了措辞,把重点放在这个问题上。否决票?到底为什么?请求对否决票作出解释。如果发布的内容中有我忽略的错误,我希望有机会更正。列表框中的标记与OP的目标完全不同,即它不会生成HTML列表。OP想要什么根本不清楚,因为它没有生成任何输出,并且包含的错误表明OP不确定如何发出任何形式的项目列表,也没有表明一系列
对象是他的目标。listbox是一种完全合法的方式,可以说明一种正确的方式来发送项目列表,我注意到OP应该使用类似listbox的东西作为容器。我恭敬地说,你的否决票是没有道理的。最好不要把它当作个人问题:-)我不是说你的回答错了,我只是想说我说的话,现在已经做了。除非您编辑答案,否则我似乎无法删除我的-1,因为我的投票当前已锁定。@DD59 Done已完成,我猜。这样失去代表真让人沮丧,投反对票?到底为什么?请求对否决票作出解释。如果发布的内容中有我忽略的错误,我希望有机会纠正它。列表框中的标记与OP之后的内容完全不同(即它不会生成HTML列表)。根本不清楚是什么原因