取决于我得到的3个结果的结果数量,我想将每个结果分配给标签文本并将每个新行放入新的Div。我是怎么做到的?
Collection<PSObject> output = pipeline.Invoke();
是我存储结果的地方。
这里有一个C#代码示例,
foreach(PSObject psObject in output)
{
Label ipLabel = new Label();
ipLabel.Text = psObject + "\r\n";
div1.Controls.Add(ipLabel);
}
这是一个asp.net代码,
<div id="div1" runat="server"></div>
我得到了正确的标签结果,但它全部显示在1 div行而不是每个div新行。
答案 0 :(得分:14)
理想情况下,标记操作应该使用.aspx
文件中的数据绑定而不是代码隐藏来完成,但无论如何:
foreach(PSObject psObject in output) {
HtmlGenericControl div = new HtmlGenericControl("div");
div.Controls.Add( new Label() { Text = psObject + "\r\n"; } );
div1.Controls.Add( div );
}
我将在aspx文件中执行此操作:
<div id="div1">
<% foreach(PSObject psObject in output) { %>
<div>
<%: psObject %>
</div>
<% } //foreach %>
</div>
请注意<%: foo %>
的使用等同于<%= Server.HtmlEncode( foo ) %>
。
答案 1 :(得分:1)
"Panel"控件输出一个div,所以也许您想将Label包装在那里:
foreach(PSObject psObject in output)
{
Panel ipPanel = new Panel();
Label ipLabel = new Label();
ipLabel.Text = psObject;
ipPanel.Controls.Add(ipLabel);
div1.Controls.Add(ipPanel);
}
您还可以在标签内添加“
”(粗略的HTML格式):
foreach(PSObject psObject in output)
{
Label ipLabel = new Label();
ipLabel.Text = psObject + "<br/>";
div1.Controls.Add(ipLabel);
}