【问题标题】:.NET C# - Passing parent controls to a pagination .ascx control?.NET C# - 将父控件传递给分页 .ascx 控件?
【发布时间】:2012-03-20 03:28:12
【问题描述】:

在我正在处理的一个项目中,我有许多 控件,它们使用 控件进行分页。与其将控件复制并粘贴到我有分页列表的每个 .aspx 页面,是否可以将 控件分解为可重用/模块化 .ascx 控件并在其上创建一个字段以传入PagedControlID?

我过去曾尝试过,但似乎无法定位父页面中的 PagedControlID。

这是我到目前为止所得到的。任何帮助将不胜感激。

.aspx 页面

<abc:Pagination ID="uxPagination" ListControlID="uxEventListView" runat="server" />

.ascx 分页控件

<asp:DataPager ID="uxDataPager" PageSize="1" runat="server" />

.ascx.cs 分页控件

public partial class ABC_UserControls_Pagination : System.Web.UI.UserControl
{
    private string listControlID;

    public string ListControlID
    {
        get { return listControlID; }
        set { listControlID = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(ListControlID))
        {
            uxDataPager.PagedControlID = ListControlID;
        }
    }
}

【问题讨论】:

  • DataPager 不是已经是启用分页的可重用控件吗?
  • 你是对的,它是。但我计划向 DataPager 控件添加更多逻辑以使其更具自定义性,因此我想采用 DRY 方法并将其分解,这样我就不会在整个网站上出现重复的代码。
  • 您是否考虑过使用您想要的任何自定义逻辑来扩展 DataPager,然后在所有页面上使用该控件?
  • 这是个好主意。但是,我能够解决这个问题。由于我无法回答,我将发布指向 PasteBin 的链接。我在 asp:DataPager - pastebin.com/Kn6Asrks 中添加了一个 OnInit 事件
  • 为什么不创建一个包含 ListView 和 DataPager 的 Web 用户控件?

标签: c# asp.net .net user-controls pagination


【解决方案1】:

对延迟表示歉意。这似乎奏效了。现在,使用您的 UserControl,您将能够通过控件 ID(在我的情况下为 ListView)和每页的首选项目数。

public partial class ABC_UserControls_Pagination : System.Web.UI.UserControl
{
    public string ListControlID { get; set; }
    public int ListPageCount { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void uxDataPager_Init(object sender, EventArgs e)
    {
        uxDataPager.PagedControlID = ListControlID;
        uxDataPager.PageSize = ListPageCount;
    }

    protected void uxDataPager_PreRender(object sender, EventArgs e)
    {
        // Custom Logic Here
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多