Telerik radgrid 分页问题 - 下一页、上一页、第一页和最后一页不起作用
Telerik radgrid pagination issue - next page, prev page, first page and last page not working
我已经尝试了从我阅读的内容中可能收集到的所有内容(从添加需要的资源到添加 pageindexchanged 等,但仍然无法弄清楚...任何帮助将不胜感激。 ..
以下是我的代码...
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<telerik:RadAjaxManager ID="ram1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="ajaxtimer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rgNewsFeed" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" />
<telerik:RadGrid ID="rg1" runat="server" ShowStatusBar="True" AllowPaging="true" >
<MasterTableView AutoGenerateColumns="False" TableLayout="Fixed">
<Columns>
<telerik:GridBoundColumn DataField="CommentSubject" HeaderText="Subject" />
<telerik:GridHyperLinkColumn DataTextField="CommentText" DataTextFormatString="{0}" DataNavigateUrlFormatString="~/Views/m.aspx?pEntityID={0}"
DataNavigateUrlFields="CmtTextID" HeaderText="Details" UniqueName="gbcCommentText" />
<telerik:GridBoundColumn DataField="EntityFundName" HeaderText="Entity/Fund" />
<telerik:GridBoundColumn DataField="EnteredBy" HeaderText="Entered by" />
<telerik:GridBoundColumn DataField="CommentAge" HeaderText="Last Updated" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:Panel ID="Panel1" runat="server">
<asp:Timer ID="Timer1" runat="server" Interval="3000">
</asp:Timer>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
代码隐藏
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
rg1.DataBind()
End Sub
Public Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
rg1.DataSource = dt 'some datatable
System.Threading.Thread.Sleep(500)
End Sub
Protected Sub rgLeoNotesNewsFeed_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles rgLeoNotesNewsFeed.NeedDataSource
rg1.DataSource = dt 'some datatable
End Sub
首先,我将 asp:UpdatePanel
替换为 telerik:RadAjaxPanel
。我不得不使用 telerik 组件一段时间,但没有找到最佳时机。如果您正在使用 radgrid 并打算将它与 updatepanel 一起使用,请使用相应的 telerik 组件,例如 telerik:RadAjaxPanel
。这样你会遇到更少的问题。
其次,我对以下部分有点困惑
<telerik:AjaxSetting AjaxControlID="ajaxtimer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rgNewsFeed" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
您似乎没有 ID 为 rgNewsFeed
和 ajaxtimer1
的任何控件。您基本上是在说 RadAjaxManager 在 ajaxtimer1 更新上更新 rgNewsFeed。
这不应该是这样吗
<telerik:AjaxSetting AjaxControlID="Timer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rg1" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
此外,您需要像这样对网格进行 ajax 化
<telerik:AjaxSetting AjaxControlID="rg1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rg1"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
不确定您的问题是否与这些相关,但请尝试一下,看看是否有效。
编辑
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
rg1.DataBind()
End Sub
我认为您应该在每次调用时设置数据源,但仅当它不是回发时才调用 DataBind
方法。请尝试以下操作。
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
If Not IsPostBack Then
rg1.DataBind()
End If
End Sub
我已经尝试了从我阅读的内容中可能收集到的所有内容(从添加需要的资源到添加 pageindexchanged 等,但仍然无法弄清楚...任何帮助将不胜感激。 ..
以下是我的代码...
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<telerik:RadAjaxManager ID="ram1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="ajaxtimer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rgNewsFeed" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" />
<telerik:RadGrid ID="rg1" runat="server" ShowStatusBar="True" AllowPaging="true" >
<MasterTableView AutoGenerateColumns="False" TableLayout="Fixed">
<Columns>
<telerik:GridBoundColumn DataField="CommentSubject" HeaderText="Subject" />
<telerik:GridHyperLinkColumn DataTextField="CommentText" DataTextFormatString="{0}" DataNavigateUrlFormatString="~/Views/m.aspx?pEntityID={0}"
DataNavigateUrlFields="CmtTextID" HeaderText="Details" UniqueName="gbcCommentText" />
<telerik:GridBoundColumn DataField="EntityFundName" HeaderText="Entity/Fund" />
<telerik:GridBoundColumn DataField="EnteredBy" HeaderText="Entered by" />
<telerik:GridBoundColumn DataField="CommentAge" HeaderText="Last Updated" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:Panel ID="Panel1" runat="server">
<asp:Timer ID="Timer1" runat="server" Interval="3000">
</asp:Timer>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
代码隐藏
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
rg1.DataBind()
End Sub
Public Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
rg1.DataSource = dt 'some datatable
System.Threading.Thread.Sleep(500)
End Sub
Protected Sub rgLeoNotesNewsFeed_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles rgLeoNotesNewsFeed.NeedDataSource
rg1.DataSource = dt 'some datatable
End Sub
首先,我将 asp:UpdatePanel
替换为 telerik:RadAjaxPanel
。我不得不使用 telerik 组件一段时间,但没有找到最佳时机。如果您正在使用 radgrid 并打算将它与 updatepanel 一起使用,请使用相应的 telerik 组件,例如 telerik:RadAjaxPanel
。这样你会遇到更少的问题。
其次,我对以下部分有点困惑
<telerik:AjaxSetting AjaxControlID="ajaxtimer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rgNewsFeed" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
您似乎没有 ID 为 rgNewsFeed
和 ajaxtimer1
的任何控件。您基本上是在说 RadAjaxManager 在 ajaxtimer1 更新上更新 rgNewsFeed。
这不应该是这样吗
<telerik:AjaxSetting AjaxControlID="Timer1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rg1" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
此外,您需要像这样对网格进行 ajax 化
<telerik:AjaxSetting AjaxControlID="rg1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rg1"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
不确定您的问题是否与这些相关,但请尝试一下,看看是否有效。
编辑
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
rg1.DataBind()
End Sub
我认为您应该在每次调用时设置数据源,但仅当它不是回发时才调用 DataBind
方法。请尝试以下操作。
Protected Sub OnLoad(sender As Object, e As System.EventArgs) Handles Me.Load
rg1.DataSource = dt 'some datatable
If Not IsPostBack Then
rg1.DataBind()
End If
End Sub