telerik gridview分页无法正常工作

时间:2013-12-28 11:53:59

标签: asp.net linq gridview telerik telerik-grid

我有一个Telerik radgrid视图,并使用linq技术从DB读取日期 现在当我点击第2或第3页时,我需要(强制)再次点击加载按钮 这是我的代码:

<telerik:RadGrid ID="GV_GRWDAS" runat="server"  AllowPaging="true" AllowCustomPaging="false" AllowSorting="True" CellSpacing="0" GridLines="None" AutoGenerateColumns="False" Font-Names="tahoma" Font-Size="12px">
    <SortingSettings SortToolTip="برای مرتب سازی اینجا کلیک کنید" SortedAscToolTip="مرتب سازی صعودی" SortedDescToolTip="مرتب سازی نزولی" EnableSkinSortStyles="true" />
    <AlternatingItemStyle Font-Names="tahoma" Font-Size="12px" HorizontalAlign="Center" VerticalAlign="Middle" />
<Columns>
    <telerik:GridBoundColumn DataField="DateFa" FilterControlAltText="Filter DateFa column" HeaderText="تاریخ" UniqueName="DateFa">
    </telerik:GridBoundColumn>
    <telerik:GridNumericColumn DataField="Resturant" FilterControlAltText="Filter DateFa column" HeaderText="رستوران (ريال)" UniqueName="Resturant" DataFormatString="{0:##,#0}">
    </telerik:GridNumericColumn>  

这是点击事件:

protected void btnPrint_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        string msg = "";
        if (Isvalid(ref msg))
        {
            var dbobj = new DriversDB.DriversModelDataContext();
            //var list = dbobj.vw_ReportWithdrawAccountSummations.Where(rwas => rwas.DateFa
            var q =
                (from d in dbobj.usp_vw_ReportWithdrawAccountSummation_GetReportWithdrawAccountSummation_ForPrint(dateFrom, dateTo)
                select d);//.ToList <usp_vw_ReportWithdrawAccountSummation_GetReportWithdrawAccountSummation_ForPrintResult>();

            GV_GRWDAS.DataSource = q;
            GV_GRWDAS.DataBind();
            Thread.Sleep(500);
            //LoadData();
        }
        else
        {
            MessageBox.Show(msg);
        }

    }
    catch (Exception)
    {   
    }

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

如果我没记错的话,telerik不会渲染也不会将所有数据添加到viewstate。因此,在这种情况下,每次调用后面的代码时,您都需要重置DataSource。您可以通过在onneeddatasource事件上设置数据源来避免识别每个操作的工作。

这在Telerik Grid常见错误中提及: http://www.telerik.com/help/aspnet-ajax/grid-most-common-mistakes.html

  1. 缺少或不使用NeedDataSource事件 NeedDataSource事件可帮助开发人员使用Telerik RadGrid轻松控制分页,排序和分组等方案。使用RadGrid触发的这些类型的PostBack事件可以导致Telerik RadGrid中每个GridTableView的Items集合发生更改。