基础结构WebHierarchicalDataGrid中的ContainerGridDataBinding



我正在尝试在Infrastics WebHierarchicalDataGrid控件中使用自定义数据绑定来实现分页。当用户单击WHDG寻呼机中的页面链接时,所需的行为是从后端检索一页数据(我已经有一个SQL Server SP可以这样做),并将其绑定到WHDG以一次显示一页。

我相信使用"ContainerGridDataBinding"事件是一种方法,但无法设置工作代码。任何关于如何做到这一点的帮助或代码示例都将不胜感激。

如果同样的行为在WHDG 的子带上持续存在也是很好的

一旦您有了SQL请求/选择命令,您将获得一个页面,您将需要创建一个自定义寻呼机来完成此操作。然后,在与按钮/下拉列表或寻呼机中的其他控件相关的事件中,您将调用SQL命令。有关如何实现WebDataGrid的自定义寻呼机,请参阅以下内容:

http://help.infragistics.com/NetAdvantage/ASPNET/2012.1/CLR4.0/?page=WebDataGrid_Using_Custom_Paging_Template.html

自定义寻呼机通过代码:http://help.infragistics.com/NetAdvantage/ASPNET/2012.1/CLR4.0/?page=WebDataGrid_Using_Custom_Paging_Template_in_Code.html

对WebHierarchicalDataGrid执行此操作与对父波段执行此操作相同。对于孩子来说,你会希望为该乐队的行为而不是父乐队的行为来做这件事。

现在,如果你不想在寻呼机中使用按钮和/或下拉菜单,而是想要链接(1,2,3,4等),可以通过在代码中执行以下操作来完成:

    private class CustomItemTemplate : ITemplate
    {
        #region ITemplate Members
        public void InstantiateIn(Control container)
        {
            for (int i = 0; i < 3; i++)
            {
                LiteralControl link = new LiteralControl();
                //class for current page: igg_PageCurrent
                //class for other pages: igg_PageLink
                link.Text = "<span class='igg_PageLink' idx='" + i.ToString() + "'>" + (i+1).ToString() + "</span>";
                container.Controls.Add(link);
            }
        }
        #endregion
    }
    protected void Page_PreInit(object sender, EventArgs e)
    {
        whdg1.Behaviors.Paging.PagerTemplate = new CustomItemTemplate();
    }

然而,真正的问题是,当以这种方式从数据库中获取数据时,您只能为一个页面获取足够的数据,因此网格不知道数据库中有多少页面。因此,你要么需要知道如何找到它,要么只知道它。这也会使实现子带变得更加困难,因为你需要知道每一行可以扩展多少子记录或记录页。

这比我想象的要容易得多。在每个PageIndexChanged事件中(即使是由自定义寻呼机(可以是自定义UserControl)引起的),我将WHDG绑定到一个伪空数据集,导致ContainerGridDataBinding启动,其中仅从DB 检索当前页面的数据

相关内容

  • 没有找到相关文章

最新更新