如何在无序列表中添加项目?

时间:2015-09-09 11:16:05

标签: c# asp.net

最近我被要求更新/维护asp.net网络应用程序。我是这项技术的新手,到目前为止,我正在以谷歌协助程序员的身份完成这项任务,并得到本论坛的最大帮助。到目前为止,我没有就c#提出单一问题,因为我在这个论坛上得到了很多帮助。基本上我不是一个真正的程序员,但我必须这样做,因为这个任务被分配给我,我非常渴望学习这个。

此页面是用C#编写的,我遇到了创建列表项的问题" li"为了分页。我得到(分页逻辑)一个使用response.write方法正常工作的代码。但是我想用页码和链接来填充li。一旦我了解了如何以编程方式生成html控件的集合,我可能会添加链接按钮而不是超链接。

我的代码如下

int startPage = (curPage < 5) ? 1 : curPage - 4;
int endPage = 4 + startPage;
endPage = (totalPage < endPage) ? totalPage : endPage;
diff = startPage - endPage + 4;
startPage -= (startPage - diff > 0) ? diff : 0;

if (startPage > 1) Response.Write(" First ... ");
for (int i = startPage; i <= endPage; i++) { Response.Write(i); }
if (endPage < totalPage) Response.Write(" ... Last ");

我得到像

这样的输出
12345 ... Last 

现在我想将此纯文本输出转换为&#34; li&#34;。

的集合

我尝试了很多东西,但我无法添加&#34; li&#34;用c#代码一个接一个。基本上我无法理解添加&#34; li&#34;的编程概念。对

<ul id="pagenav" runat="server></ul>

有人可以教/帮助/演示如何添加这些&#34; li&#34;到&#34; ul&#34;参考这个分页逻辑。

2 个答案:

答案 0 :(得分:2)

修改相关代码以使用HtmlGenericControl

HtmlGenericControl liControl;

if (startPage > 1) {
    liControl = new HtmlGenericControl("li");
    liControl.InnerHtml = "First...";
    pagenav.Controls.Add(liControl);
}

for (int i = startPage; i <= endPage; i++) { 
    liControl = new HtmlGenericControl("li");
    liControl.InnerHtml = i.ToString();
    pagenav.Controls.Add(liControl);
}

if (endPage < totalPage) {
    liControl = new HtmlGenericControl("li");
    liControl.InnerHtml = "...Last";
    pagenav.Controls.Add(liControl);
}

答案 1 :(得分:1)

以下逻辑适合您的问题..

Response.Write("<ul id='pagenav' runat='server'>");
for (int i = startPage; i <= endPage; i++) { 
    Response.Write("<li>" + i.ToString() + "</li>");
}
Response.Write("</ul>");

预期输出:

<ul id='pagenav' runat='server'>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>