исключения нехватки памяти при использовании элементов управления Telelrik?

#c# #asp.net #sql #telerik

#c# #asp.net #sql #телерик

Вопрос:

В следующем коде у меня есть закомментированное стандартное представление 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 и папку Bin с dll) Я получаю следующую ошибку:

Ошибка синтаксического анализатора

Описание: Произошла ошибка во время синтаксического анализа ресурса, необходимого для обслуживания этого запроса. Пожалуйста, просмотрите следующие конкретные сведения об ошибках синтаксического анализа и соответствующим образом измените исходный файл.

Сообщение об ошибке синтаксического анализатора: System.OutOfMemoryException было выдано исключение типа.

Почему это происходит исключительно при использовании элементов управления Telerik?

Комментарии:

1. Я думаю, что лучше привязать веб-элементы управления к datareader, а затем к datatable.

Ответ №1:

Telerik RadGrid хранит свои данные в состоянии просмотра страницы, и если оно становится значительно большим, оно может выдать System.OutOfMemoryException то, что вы видите.

Попробуйте отключить хранилище ViewState в настройках EnableViewState="false" RadGrid, установив следующее:

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

Проверьте эту страницу для получения дополнительной информации об оптимизации ViewState для элементов управления Telerik.