Поиск BLOB в RadGrid - PullRequest
       18

Поиск BLOB в RadGrid

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

Я довольно новичок в работе с элементами управления Telerik, и я получил нулевой ответ на форумах Telerik по этому поводу, но друг порекомендовал Stackoverflow, поэтому я надеюсь, что кто-то может помочь.

ВКороче говоря, я программист .NET, который в настоящее время разрабатывает модули для использования в DotNetNuke.Для модуля, над которым я сейчас работаю, я отображаю данные в Telerik RadGrid.Один из моих столбцов содержит LinkButton, который при щелчке по нему должен запускать функцию, которая извлекает BLOB из моей базы данных и открывает файл PDF.

У меня это работает в тестовой среде .NET с использованием GridView.,Вот код для моего события OnClick:

public void lnkWebFileName_Click(object sender, EventArgs e)
{
   Label lblWebFileNameNew = (Label)((Control)sender).NamingContainer.FindControl
   ("lblWebFileName");
   string webfilename = lblWebFileNameNew.Text.ToString();
   BlobRetrieval.WriteDocumentWithStreaming(webfilename);
}

Я не включил код для WriteDocumentWithStreaming, потому что в .NET это работает как чудо, поэтому я знаю, что мой код поиска работает.

Попытка заставить это работать через мой RadGrid, однако, является другой проблемой.В целях тестирования я использую следующий код, чтобы убедиться, что получаю значение имени веб-файла, а затем меняю текст кнопки:

public void lnkWebFileName_Click(object sender, EventArgs e)
{
   Label lblWebFileNameNew = (Label)((Control)sender).NamingContainer.FindControl  
   ("lblWebFileName");
   LinkButton lnkBtn = (LinkButton)((Control)sender).NamingContainer.FindControl
   ("lnkWebFileName");
   string webfilename = lblWebFileNameNew.Text.ToString();
   lnkBtn.Text = webfilename;
}

Работает отлично!Проблема в том, что, когда я добавляю:

BlobRetrieval.WriteDocumentWithStreaming(webfilename);

, чтобы попытаться отобразить PDF-файл, он ничего не делает.Я проверил EventViewer DNN, и единственное сообщение об ошибке, которое я получаю:

System.Exception: Unhandled Error

Кто-нибудь знает, что делать, чтобы получить и отобразить BLOB через RadGrid?Нужно ли делать что-то особенное с моим существующим кодом, или в RadGrid есть что-то конкретное, что нужно сделать?

Кто-то, пожалуйста, помогите избавиться от этой головной боли.Спасибо!

MKDnn

1 Ответ

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

Моей первой мыслью было бы то, что Telerik и / или DNN будут использовать частичные обратные передачи (UpdatePanels), поэтому вы можете попробовать зарегистрировать свои кнопки LinkButton с помощью диспетчера сценариев, чтобы избежать их появления, попытаться выполнить частичные обратные передачи (которые выиграли не работает, когда вам нужно отправить файл клиенту). Вы можете сделать это в DNN через DotNetNuke.Framework.AJAX.RegisterPostBackControl.

Вы также можете попробовать обработать ваш обработчик событий в блоке try / catch и вызвать DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException, чтобы получить более подробную информацию об исключении в журнале событий.

...