【问题标题】:Dont paging in telerik control in vb.net不要在 vb.net 中的 Telerik 控件中分页
【发布时间】:2013-10-22 15:07:38
【问题描述】:

我有一个 VB 参考项目代码,并使用 Telerik .NET UI 控件。但是它在分页中存在问题。这是我的员工页面,它被分成了页面,但是当我点击另一个页面(例如 2)时,表格上的数据只显示页面 1 中的数据,我设置 pagesize 10 为 DefaultPageSize(2 中有 18 个项目页)。

Public Overrides Sub ViewLoad(ByVal e As System.EventArgs)
    Try
        SetGridFilter(rgEmployee)
        Refresh()
        UpdateControlState()
    Catch ex As Exception
        DisplayException(Me.ViewName, Me.ID, ex)
    End Try
End Sub

Public Overrides Sub ViewInit(ByVal e As System.EventArgs)
    rgEmployee.AllowCustomPaging = True
    rgEmployee.PageSize = Common.Common.DefaultPageSize
    'rgEmployee.ClientSettings.EnablePostBackOnRowClick = True
    InitControl()
End Sub

Protected Sub InitControl()
    Try
        Me.ctrlMessageBox.Listener = Me
        Me.MainToolBar = tbarLocations
        Common.Common.BuildToolbar(Me.MainToolBar, ToolbarItem.Create,
                                   ToolbarItem.Edit,ToolbarItem.Save, 
                                   ToolbarItem.Cancel)
        CType(MainToolBar.Items(3), RadToolBarButton).CausesValidation = True
        CType(Me.MainToolBar.Items(3), RadToolBarButton).Enabled = False
        CType(Me.MainToolBar.Items(4), RadToolBarButton).Enabled = False
        Me.MainToolBar.OnClientButtonClicking = "OnClientButtonClicking"
        'CType(Me.Page, AjaxPage).AjaxManager.ClientEvents.OnRequestStart = "onRequestStart"
    Catch ex As Exception
        DisplayException(Me.ViewName, Me.ID, ex)
    End Try
End Sub

在refresh()函数中调用rgEmployee.Rebind()和html

<tlk:RadPane ID="RadPane3" runat="server" Scrolling="None">
        <tlk:RadGrid ID="rgEmployee" runat="server" Height="100%">
            <MasterTableView DataKeyNames="ID" ClientDataKeyNames="CODE, EMP_NAME, EMP_AD">
                <Columns>
                            <%--<tlk:GridClientSelectColumn> here --%>
                </Columns>
            </MasterTableView>
        </tlk:RadGrid>
        <Common:ctrlMessageBox ID="ctrlMessageBox" runat="server" />

    </tlk:RadPane>

<script type="text/javascript">
    var enableAjax = true;

    function onRequestStart(sender, eventArgs) {
        eventArgs.set_enableAjax(enableAjax);
        enableAjax = true;
    }
</script>

正如我之前提到的,这是一个参考项目,所以我参考其他分页成功的页面,在“CType(Me.Page, AjaxPage).AjaxManager.ClientEvents.OnRequestStart = “onRequestStart””调用中有所不同HTML 上的 javascript(有点傻 b/c 我真的不太了解 Telerik 控制,这也是我第一次看 vb 代码,所以我不能很好地理解)。我将此代码添加到员工代码隐藏中。它事件不显示任何东西,避免母版页中的东西。有问题吗?

当我更改 rgEmployee.PageSize=20(没有“CType(Me.Page, AjaxPage).AjaxManager.ClientEvents.OnRequestStart = "onRequestStart"")时,它会正确显示所有数据,并选择 pagesize=10 (由 radgrid 支持),它也正确显示为每页 10 个项目(我的意思是第 2 页显示 8 个项目)

【问题讨论】:

    标签: javascript ajax vb.net telerik paging


    【解决方案1】:

    不建议每次将页面发布到此页面时都在执行更改,并且有时会导致非常奇怪的行为。

    例子:

    Public Overrides Sub ViewLoad(ByVal e As System.EventArgs)
        If(Not IsPostBack) Then ' You should only 
            Try
                SetGridFilter(rgEmployee)
                Refresh()
                UpdateControlState()
            Catch ex As Exception
                DisplayException(Me.ViewName, Me.ID, ex)
            End Try
        End If
    End Sub
    

    您可能会发现以下问题有助于解释原因:Implementation of IsPostBack in page load

    【讨论】:

    • 我已经解决了这个问题,b/c这是我第一次尝试VB,所以对我来说很难......谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2011-07-26
    相关资源
    最近更新 更多