gpt4 book ai didi

c# - 动态添加的 LinkBut​​ton CommandName/CommandArgument 设置被删除

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:03 25 4
gpt4 key购买 nike

我正在尝试在表格上方实现分页栏。我有一个静态 <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。如果您正在查看,它将是在 Request.Form 集合中可见的那个 ID。

但是 - 老实说,我认为您的方法是错误的。如果您想要分页,那么您应该查看诸如 GridView 或 ListView 控件之类的控件,它们在控件中内置了分页功能。那将是更标准的做事方式。 GridView分页详解here和 ListViews 的一般教程,包括分页 here .

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

关于c# - 动态添加的 LinkBut​​ton CommandName/CommandArgument 设置被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com