Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RadGrid中的BLOB检索_C#_Telerik_Dotnetnuke_Blob_Radgrid - Fatal编程技术网

C# RadGrid中的BLOB检索

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事件的代码:

我刚刚接触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年前的问题。