![](/img/trans.png)
[英]ListView add image button with CommandName, Visible, CommandArgument dynamically by calling Eval()
[英]Dynamically added LinkButton CommandName/CommandArgument settings being dropped
我正在尝试在桌子上方实现分页栏。 我的页面上有一个静态的<ul>
元素:
<div><center><ul id="topnav" runat="server"></ul></center></div>
在我的Page_Load事件中,我尝试用页码加载它:
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 );
}
但是,当控件实际呈现时,它以名称“ ctlXX”(其中XX是递增数字)发布且没有参数,因此无法获取页码。 .Text属性可以很好地呈现。 我究竟做错了什么? 这是完全错误的方法吗?
如果要动态添加按钮,则需要在Page_Init
方法中执行此操作,否则控件将不会参与ViewState。 这可能是问题所在。 当然不会有帮助。
该名称也是.Net动态分配给按钮的名称,因为您自己尚未指定ID。 如果您正在寻找ID,那么它将在Request.Form
集合中可见。
但是-老实说,我认为您的做法是错误的。 如果要分页,则应该查看类似GridView或ListView控件的控件,该控件内置了分页功能。 那将是更标准的服务方式。 GridView分页在这里进行了说明,而ListViews的一般教程(包括分页) 在此处进行了说明 。
通常,分页是一个在ASP.Net中已经解决了很多次的问题,您确实不想重新发明轮子-嗯,我不会。 同样,通过使用这些类型的网格控件,您将获得开箱即用的排序功能-另一个非常常见的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.