我有一个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)
{
}
如何解决此问题?
答案 0 :(得分:2)
如果我没记错的话,telerik不会渲染也不会将所有数据添加到viewstate。因此,在这种情况下,每次调用后面的代码时,您都需要重置DataSource。您可以通过在onneeddatasource事件上设置数据源来避免识别每个操作的工作。
这在Telerik Grid常见错误中提及: http://www.telerik.com/help/aspnet-ajax/grid-most-common-mistakes.html