如何在asp.net中隐藏寻呼机
Posted
技术标签:
【中文标题】如何在asp.net中隐藏寻呼机【英文标题】:How to hide pager in asp.net 【发布时间】:2012-04-06 22:17:57 【问题描述】:我正在使用分页器与 ListView 进行分页,但问题是,当从表中找不到行时。在这种情况下,寻呼机也显示分页。所以,我的问题是,我怎样才能隐藏寻呼机。当ListView显示消息no row found
时。
提前致谢!!
【问题讨论】:
【参考方案1】:您可以使用DataBound
事件来隐藏它:
protected void jobSearchResult_DataBound(Object sender, EventArgs e)
DataPager pager = (DataPager)jobSearchResult.FindControl("jobSearchPager");
pager.Visible = pager.TotalRowCount > pager.MaximumRows;
编辑:假设您使用的是 VB.NET
Protected Sub jobSearchResult_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)
Dim pager = DirectCast(jobSearchResult.FindControl("jobSearchPager"), DataPager)
pager.Visible = pager.TotalRowCount > pager.MaximumRows
End Sub
如果您的寻呼机不是 ListView 的 LayoutTemplate
的一部分(例如,在 ListView 之外),您可以直接引用它而不使用 FindControl
:
jobSearchPager.Visible = jobSearchPager.TotalRowCount > jobSearchPager.MaximumRows
DataPager.TotalRowCount Property
DataPager.MaximumRows Property
【讨论】:
我也在尝试同样的方法.. 但是,出现错误Protected Sub jobSearchResult_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) DataPager pager = (DataPager) jobSearchResult.FindControl("jobSearchPager") pager.Visible = (pager.PageSize < pager.TotalRowCount) End Sub
DataPager' is a type and cannot be used as an expression
and Name 'Pager' is not declared
and Comma, ')', or a valid expression continuation expected.
and 5 others...
@coders_zone:您使用的是 C# 还是 VB.NET?我的答案是 C#,而您的评论是两者的混合,因此不会编译。
@coders_zone:不工作是什么意思?另一个错误,寻呼机可见?您是否正在调试以检查 pager.TotalRowCount 和 pager.MaximumRows?
寻呼机仍然可见。甚至,当我设置pager.Visible=False
。然后,它也是可见的。现在,我将按照您的建议进行调试。【参考方案2】:
在您的数据绑定方法中,您可以检查项目来源计数。如果为零,则将寻呼机的可见性设置为 false。
【讨论】:
【参考方案3】:检查您检索到的数据以获取结果,如果为空则调用:
DataPager.Visible = false;
【讨论】:
以上是关于如何在asp.net中隐藏寻呼机的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC SiteMap 提供程序——如何在实际菜单中“隐藏”单个项目
如何从后面的代码中隐藏和显示 asp.net 中的 asp:buttons?