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

本文关键字:添加 项目 列表 无序 | 更新日期: 2023-09-27 18:12:07

最近我被要求更新/维护asp.net web应用程序。我是这项技术的新手,到目前为止,我正在做这个任务作为谷歌辅助程序员,从这个论坛得到最大的帮助。到目前为止,我没有问任何关于c#的问题,因为我在这个论坛上得到了很多帮助。基本上我不是一个真正的程序员,但我必须这样做,因为这个任务分配给我,我非常热衷于学习这个。

这个页面是用c#写的,我遇到了一个为分页创建列表项"li"的问题。我得到了(分页逻辑)一个使用响应正确工作的代码。写方法。但是我想用页码和链接填充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 

现在我想把这个纯文本输出转换成"li"的集合。

我已经尝试了很多事情,但我不能用c#代码一个接一个地添加"li"。基本上,我无法理解为

添加"li"的编程概念。
<ul id="pagenav" runat="server></ul>

有人能教/帮助/演示如何将这些"li"添加到"ul"中,以参考这个分页逻辑吗?

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

相关代码修改为使用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);
}

下面的逻辑可以解决你的问题。

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>