2013-10-22 51 views
0

我有一個VB參考項目代碼並使用telerik .NET UI控件。但它在分頁時有問題。這是我的員工頁面,它已被分成頁面,但當我點擊其他頁面(例如2)時,表格上的數據僅顯示頁面1中的數據,我設置頁面大小10是DefaultPageSize(有2個18項目頁)。不要在vb.net的telerik控件中進行分頁

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 

在刷新()函數調用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「」調用javascript在HTML(稍微愚蠢b/ci真的不知道更多關於telerik控制,這是第一個當我看着VB代碼,所以我不明白)。我將此代碼添加到員工代碼隱藏中。它沒有顯示任何事情避免masterpage的事情。問題在那裏嗎?當我更改rgEmployee.PageSize = 20(不具有「CType(Me.Page,AjaxPage).AjaxManager.ClientEvents.OnRequestStart =」onRequestStart「」)時,它顯示所有數據都正確,並且選擇pagesize = 10 (由radgrid支持),它顯示正確也分爲每頁10項(我的意思是第2頁顯示8項)

回答

0

你似乎是執行每次頁面發佈到這個變化不建議,可以有時會導致非常奇怪的行爲。

例子:

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

+0

我已經解決了這個問題,B/C這是我第一次嘗試VB,所以這是相當對我來說很困難....謝謝 – user2494355