C# RadGrid中的BLOB检索
我刚刚接触Telerik控件,我在Telerik论坛上对此没有任何回应,但一位朋友推荐Stackoverflow,所以我希望有人能提供帮助 简而言之,我是一名.NET程序员,目前正在开发用于DotNetNuke的模块。对于我目前正在研究的模块,我正在Telerik RadGrid中显示数据。我的一个专栏包含一个LinkButton,单击它时需要运行一个函数,从我的数据库检索BLOB并打开pdf文件 我已经使用GridView在.NET测试环境中实现了这一点。下面是我的OnClick事件的代码:C# RadGrid中的BLOB检索,c#,telerik,dotnetnuke,blob,radgrid,C#,Telerik,Dotnetnuke,Blob,Radgrid,我刚刚接触Telerik控件,我在Telerik论坛上对此没有任何回应,但一位朋友推荐Stackoverflow,所以我希望有人能提供帮助 简而言之,我是一名.NET程序员,目前正在开发用于DotNetNuke的模块。对于我目前正在研究的模块,我正在Telerik RadGrid中显示数据。我的一个专栏包含一个LinkButton,单击它时需要运行一个函数,从我的数据库检索BLOB并打开pdf文件 我已经使用GridView在.NET测试环境中实现了这一点。下面是我的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实现这一点是另一个问题。出于测试目的,我使用以下代码确保获得webfilename值,然后更改按钮文本:
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文件,它不执行任何操作。我检查了DNN的EventViewer,得到的唯一错误消息是:
System.Exception: Unhandled Error
有人知道如何通过RadGrid检索和显示BLOB吗?我是否必须对我现有的代码做一些特殊的事情,或者RadGrid中是否需要做一些特定的事情
谁来帮我治好头痛。谢谢大家!
MKDnn我的第一个想法是Telerik和/或DNN将使用部分回发(UpdatePanels),因此您可以尝试向脚本管理器注册链接按钮,以避免它们,尝试执行部分回发(当您需要向客户端发送文件时,这将不起作用)。您可以通过DNN进行此操作
您还可以尝试将事件处理程序包装在
try
/catch
块中,并调用以在事件日志中获取有关异常的更多详细信息。我的第一个想法是Telerik和/或DNN将使用部分回发(UpdatePanels),因此,您可以尝试向脚本管理器注册您的链接按钮,以避免出现链接按钮,尝试执行部分回发(当您需要向客户端发送文件时,这将不起作用)。您可以通过DNN进行此操作
您还可以尝试将事件处理程序包装在
try
/catch
块中,并调用以获取事件日志中有关异常的更多详细信息。我知道,许多RadGrid控件依赖于页面上的RadAjaxManager以及母版页中的脚本管理器来完成网格的许多功能。我不确定你的代码中是否有这些
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="ConfigurationPanel1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="containerDiv" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
<telerik:AjaxUpdatedControl ControlID="ConfigurationPanel1"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
我知道很多RadGrid控件都依赖页面上的RadAjaxManager以及母版页中的脚本管理器来完成网格的许多功能。我不确定你的代码中是否有这些
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="ConfigurationPanel1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="containerDiv" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
<telerik:AjaxUpdatedControl ControlID="ConfigurationPanel1"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
在我发布之前,我没有意识到这是一个9年前的问题。在我发布之后,我才意识到这是一个9年前的问题。