Проблема с подкачкой в ​​Telerik Radgrid при добавлении данных из ServerSide - PullRequest
2 голосов
/ 03 августа 2011

У меня есть две radgrid, для первой radgrid я связываю данные со стороны сервера, а для второй radgrid я связываю данные через sqldatasource со стороны клиента.Radgrid2, для которого я связываю данные через клиентскую часть, свойство пагинации работает отлично, и моя сетка обновляется каждый раз.Но главная проблема заключается в том, что когда привязка radgrid со стороны сервера не работает, мое свойство пагинации является любым их свойством, которое я должен установить для работы нумерации страниц, когда я связываю данные со стороны сервера, может ли кто-нибудь помочь разобраться в проблеме.

Это мой код страницы aspx, содержащий радгрид

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RadGridRefreshTest.aspx.cs" Inherits="RadGridTest.RadGridRefreshTest" enableEventValidation="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true">
        </telerik:RadScriptManager>
        <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true"  PageSize="10" AllowCustomPaging="True" onpageindexchanged="RadGrid1PageIndexChanged" >
        <PagerStyle Mode="NextPrevAndNumeric"  />
        </telerik:RadGrid>

        second grid
        <telerik:RadGrid ID="RadGrid2" runat="server" CellSpacing="0" 
            DataSourceID="SqlDataSource" GridLines="None" 
            onpageindexchanged="RadGrid2PageIndexChanged" >
<MasterTableView AutoGenerateColumns="False" DataKeyNames="CustomerID" 
                DataSourceID="SqlDataSource" AllowPaging="true" PageSize="10" >
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>

<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>

<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>

    <Columns>
        <telerik:GridBoundColumn DataField="CustomerID" 
            FilterControlAltText="Filter CustomerID column" HeaderText="CustomerID" 
            ReadOnly="True" SortExpression="CustomerID" UniqueName="CustomerID">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="CompanyName" 
            FilterControlAltText="Filter CompanyName column" HeaderText="CompanyName" 
            SortExpression="CompanyName" UniqueName="CompanyName">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="ContactName" 
            FilterControlAltText="Filter ContactName column" HeaderText="ContactName" 
            SortExpression="ContactName" UniqueName="ContactName">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="ContactTitle" 
            FilterControlAltText="Filter ContactTitle column" HeaderText="ContactTitle" 
            SortExpression="ContactTitle" UniqueName="ContactTitle">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="Address" 
            FilterControlAltText="Filter Address column" HeaderText="Address" 
            SortExpression="Address" UniqueName="Address">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="City" 
            FilterControlAltText="Filter City column" HeaderText="City" 
            SortExpression="City" UniqueName="City">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="Region" 
            FilterControlAltText="Filter Region column" HeaderText="Region" 
            SortExpression="Region" UniqueName="Region">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="PostalCode" 
            FilterControlAltText="Filter PostalCode column" HeaderText="PostalCode" 
            SortExpression="PostalCode" UniqueName="PostalCode">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="Country" 
            FilterControlAltText="Filter Country column" HeaderText="Country" 
            SortExpression="Country" UniqueName="Country">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="Phone" 
            FilterControlAltText="Filter Phone column" HeaderText="Phone" 
            SortExpression="Phone" UniqueName="Phone">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="Fax" 
            FilterControlAltText="Filter Fax column" HeaderText="Fax" SortExpression="Fax" 
            UniqueName="Fax">
        </telerik:GridBoundColumn>
    </Columns>

<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>

<FilterMenu EnableImageSprites="False"></FilterMenu>

<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
        </telerik:RadGrid>
        <asp:SqlDataSource ID="SqlDataSource" runat="server" 
            ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString2 %>" 
            SelectCommand="SELECT * FROM [Customers]"></asp:SqlDataSource>
    </div>
    </form>
</body>
</html>

Это код файла, в котором я пишу код для привязки к сетке с использованием источника данных

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using Telerik.Web.UI;
using Telerik.Web.Data;


namespace RadGridTest
{
    public partial class RadGridRefreshTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString ="data source=ADMIN-PC1;uid=sa;password=sql;database=NorthWind";
            DataSet ds = new DataSet("CustOrders");
            SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM Customers", con);
            da1.TableMappings.Add("Table", "Customers");
            da1.Fill(ds);
            RadGrid1.DataSource = ds;
            RadGrid1.DataBind();
        }
        protected void RadGrid1PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)
        {
            int index = e.NewPageIndex;
            int current = RadGrid1.CurrentPageIndex;
        }

        protected void RadGrid2PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)
        {
            int index = e.NewPageIndex;
            int current = RadGrid1.CurrentPageIndex;
        }
}

Ответы [ 2 ]

7 голосов
/ 03 августа 2011

У меня была похожая проблема при настройке RadGrid.DataSource для запроса Linq. Я расскажу вам о нескольких вещах, которые я пробовал, и к чему мне в конечном итоге пришлось перейти.

Прежде всего, если

 AllowCustomPaging = True

Тогда подкачка по умолчанию переопределяется. Попробуйте установить для параметра AllowPaging значение true или для параметра AllowCustomPaging значение true, но не для обоих. Telerik контролирует переменчивость! :)

Я попытался настроить подкачку внутри MasterTableView, но безрезультатно Я также добавил AllowViewstate и убедился, что элемент управления связан с RadAjaxManager

<telerik:AjaxSetting AjaxControlID="RadGrid1">
       <UpdatedControls>
             <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
       </UpdatedControls>
 </telerik:AjaxSetting>

У меня тоже ничего не получилось, но попробуй.

В конце концов я использовал Listview и настроил шаблонные столбцы для данных внутри, включил разбиение на страницы, и все это работало просто отлично. Я знаю, что это не прямой ответ, но, возможно, он даст вам новые идеи.

1 голос
/ 26 сентября 2012

Я только что понял, что у меня в сетке есть и AllowPaging="true", и AllowCustomPaging="true". Удаление одного из них решило проблему.

...