C# 正在删除动态添加的LinkButton命令名/命令参数设置

C# 正在删除动态添加的LinkButton命令名/命令参数设置,c#,asp.net,linkbutton,C#,Asp.net,Linkbutton,我正在尝试在表上方实现分页栏。我的页面上有一个静态元素: <div><center><ul id="topnav" runat="server"></ul></center></div> 但是,当控件实际呈现时,它以名称“ctlXX”(其中XX是一个递增的数字)的形式发布,并且没有参数,因此我无法获取页码。但是.Text属性可以很好地渲染。我做错了什么?这是完全错误的方法吗?如果要动态添加按钮,则需要在Page\u Ini

我正在尝试在表上方实现分页栏。我的页面上有一个静态
元素:

<div><center><ul id="topnav" runat="server"></ul></center></div>

但是,当控件实际呈现时,它以名称“ctlXX”(其中XX是一个递增的数字)的形式发布,并且没有参数,因此我无法获取页码。但是.Text属性可以很好地渲染。我做错了什么?这是完全错误的方法吗?

如果要动态添加按钮,则需要在
Page\u Init
方法中执行此操作,否则控件将不会参与ViewState。这可能就是问题所在。当然没用了

此外,该名称是.Net动态分配给按钮的名称,因为您自己没有指定ID。如果您正在查找,则该ID将在
Request.Form
集合中可见

但是——老实说,我认为你的方法是错误的。如果您想要分页,那么您应该查看类似GridView或ListView控件的东西,它在控件中内置了分页功能。这将是做事的标准。介绍了GridView分页,以及ListView的一般教程,包括分页

一般来说,分页是一个在ASP.Net中已经解决了很多次的问题,你真的不想重新发明轮子——我不想。此外,通过使用这些类型的网格控件,您将获得诸如开箱排序之类的功能,这是另一个非常常见的要求

foreach ( int linkpage in linkpages ) {
  HtmlGenericControl li;
  LinkButton pbut;
  li = new HtmlGenericControl( "li" );
  pbut = new LinkButton();
  pbut.CommandName = "page";
  pbut.CommandArgument = linkpage.ToString();
  pbut.Text = linkpage.ToString();
  li.Controls.Add( pbut );
  topnav.Controls.Add( li );
}