说我有一个包含属性标题和内容的帖子数据 现在我想在h1中显示Title,在p中显示Content 我如何使用for / while循环。使用c#Asp.net生成这些标签 所以就像这样
内容
内容再次
它继续...... ??
答案 0 :(得分:0)
我不确定是否理解,但您的意思是您获取某种数据,并且您希望以这种方式显示?您应该使用Listview,在其中定义ItemTemplate,并将数据分配给DataSource属性。
例如,在.aspx文件中
<asp:ListView ID="LvPost" runat="server" OnItemDataBound="LvPost_ItemDataBound">
<ItemTemplate>
<h1><asp:Literal id="title" runat="server"></h1>
<p><asp:Literal id="content" runat="server"></p>
</ItemTemplate>
</asp:ListView>
然后,在你的LvPost_ItemDataBound方法中,类似
var postItem= e.Item.DataItem as YourPostClass;
var h1Text = e.Item.FindControl("title") as Literal;
var pText= e.Item.FindControl("content") as Literal;
h1Text.Text=postItem.Title;
pText.Text = postItem.Content;
最后,不要忘记将数据绑定到listview,(例如:在PageLoad中)
LvPost.DataSource = <List of YourPostClass>;
答案 1 :(得分:0)
我不确定您的数据究竟如何,但这样的事情可能有用。在您希望显示数据的页面上放置一个文字,然后使用如下代码:
string[] headings = {"Heading 1", "Heading 2", "Heading 3"};
string[] paragraphs = {"Content", "content again","Content even again!"};
literal1.Text = "";
for (int i=0; i<headings.Length;i++)
{
literal1.Text = string.Format("{0}<h1>{1}</h1><p>{2}</p>{3}", literal1.Text, HttpServerUtility.HtmlEncode(headings[i]), HttpServerUtility.HtmlEncode(paragraphs[i]), Environment.Newline);
}
请注意,我正在使用HttpServerUtility.HtmlEncode
对字符串进行编码。如果您希望在内容中包含HTML标记(例如,如果paragraphs[0] == "<b>Content</b>
“),请删除此方法。
如果您更喜欢List<T>
和容器类,则此代码可能更合适:
private class Content
{
public string Heading { get; set; };
public string Paragraph { get; set; };
}
private List<Content> _content = new List<Content>();
private void CreateContent()
{
_content.Add(new Content {Heading = "Heading 1", Paragraph = "Content"});
_content.Add(new Content {Heading = "Heading 2", Paragraph = "More Content"});
_content.Add(new Content {Heading = "Heading 3", Paragraph = "Even More Content"});
literal1.Text = "";
foreach (Content c in _content)
{
literal1.Text = string.Format("{0}<h1>{1}</h1><p>{2}</p>{3}", literal1.Text, HttpServerUtility.HtmlEncode(c.Heading), HttpServerUtility.HtmlEncode(c.Paragraph), Environment.Newline);
}
}