簡體   English   中英

不要在vb.net中的Telerik控件中進行分頁

[英]Dont paging in telerik control in vb.net

我有一個VB的參考項目代碼,並使用telerik .NET UI控件。 但這在分頁中有問題。 這是我的“雇員”頁面,它已分為頁面,但是當我單擊另一頁面(例如2)時,表上的數據僅顯示頁面1中的數據,我將頁面大小設置為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 / ci確實對Telerik控制一無所知,這也是我第一次看vb代碼,所以我不太了解)。 我將此代碼添加到了背后的員工代碼中。 它沒有顯示任何事件,請避免從母版頁進行操作。 有問題嗎?

當我更改rgEmployee.PageSize = 20(不具有“ CType(Me.Page,AjaxPage).AjaxManager.ClientEvents.OnRequestStart =“ onRequestStart”“”)時,它將正確顯示所有數據,並選擇pagesize = 10(受支持) radgrid),它也正確地顯示為每頁10個項目(我的意思是第2頁顯示8個項目)

不建議您在每次將頁面發布到此頁面時執行更改,並且有時可能會導致異常行為。

例:

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

您可能會發現以下問題對解釋原因很有用: 頁面加載中IsPostBack的實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM