使用Telelrik控件时内存不足?

时间:2014-06-22 12:02:20

标签: c# asp.net sql telerik

在下面的代码中,我有一个注释掉的标准asp Datagrid视图和Telerik RadGrid。

<telerik:RadGrid ID="RadGrid1" runat="server">
</telerik:RadGrid>

在c#端,这是我在page_load中的代码

DataTable dt = new DataTable();
string id = Request.QueryString["id"];
SqlConnection conn = new SqlConnection( ConfigurationManager.ConnectionStrings["SHBNdbConnectionString"].ConnectionString);
conn.Open();
string query = "SELECT ProjectDesc,ProjectLoc,ProjectStatus FROM tblProjects INNER JOIN tblClients ON tblClients.ProjectID=tblProjects.ProjectID WHERE tblClients.ClientID='"+ id +"';";

SqlCommand com = new SqlCommand(query, conn);

using (SqlDataAdapter sda = new SqlDataAdapter())
{
    sda.SelectCommand = com;
    sda.Fill(dt);
    RadGrid1.DataSource = dt;
    RadGrid1.DataBind();
}

conn.Close();

现在,注释掉的部分c#代码工作正常,如果我运行网站并打开它,它将在标准Datagridview中显示数据,但是,当我为Telerik RadGrid(包含程序集引用)做同样的事情时在html和带有dll的Bin文件夹中)我收到以下错误:

分析器错误

描述:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。

分析器错误消息:抛出类型System.OutOfMemoryException的异常。

为什么在使用Telerik控件时才会发生这种情况?

1 个答案:

答案 0 :(得分:0)

Telerik RadGrid将其数据存储在页面的ViewState中,如果它变得非常大,它可以抛出你正在看到的System.OutOfMemoryException

尝试通过设置EnableViewState="false"来禁用RadGrid设置中的ViewState存储:

<telerik:RadGrid ID="RadGrid1" runat="server" EnableViewState="false" />

有关优化Telerik控件的ViewState的详细信息,请查看this page