使用c#在Asp.net中的标题和段落

时间:2013-11-21 17:46:52

标签: c# asp.net

说我有一个包含属性标题和内容的帖子数据 现在我想在h1中显示Title,在p中显示Content 我如何使用for / while循环。使用c#Asp.net生成这些标签 所以就像这样     

标题1

    

内容

    

heading2

    

内容再次

它继续...... ??

2 个答案:

答案 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);
   }
}