UpdatePanel 和 ListView 控件不显示来自 BLOB 的数据
Posted
技术标签:
【中文标题】UpdatePanel 和 ListView 控件不显示来自 BLOB 的数据【英文标题】:UpdatePanel and ListView control do not show data from BLOB 【发布时间】:2019-08-01 19:49:13 【问题描述】:我正在尝试从 Azure Blob 填充数据(带有超链接的文件名)。
这是我的代码:
更新面板:
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="refreshButton" runat="server" Text="Refresh" OnClick="refreshButton_Click" />
<asp:ListView ID="fileDisplayControl" runat="server">
<LayoutTemplate>
<asp:Hyperlink ID="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<asp:Hyperlink ID="filehyperlink" runat="server" NavigateUrl='<%# Eval("Url") %>' />
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
在 Listview 中,我放置了 HYperlink 控件,其中数据填充有超链接。
向 Listview 控件提供数据源的代码:
private CloudBlobContainer getfileGalleryContainer()
return _blobStorageService.getCloudBlobContainer();
protected void Page_PreRender(object sender, EventArgs e)
try
// Blob container that contains the ppp
// Perform a query of the its contents and return the list of all of the blobs whose name begins with the string "ppp".
// It returns an enumerator of their URLs and place that enumerator into list view as its data source.
fileDisplayControl.DataSource =
from o in getfileGalleryContainer().GetDirectoryReference("ppp").ListBlobs()
select new Url = o.Uri ;
// List view to bind to its data source
fileDisplayControl.DataBind();
catch (Exception)
不幸的是,即使文件存储在 ppp blob 中,也没有填充任何内容。
有人请告诉我这个过程有什么问题吗?
【问题讨论】:
你检查有没有exceptions
?
不要出现任何异常。 Web-job 正在运行并生成文件,但没有任何结果
如果这是真实的代码,你不会看到异常,因为catch(Exception)
去掉try/catch,再试一次。
它无法在本地 Blob 中创建任何内容,这可能是一个原因。即使它在 Azure 中发布并运行,它也会在 Azure 存储 blob 中创建文件,但不会在 LIstview 中返回任何内容。它没有显示任何错误令人惊讶
【参考方案1】:
你的问题太笼统了。您必须逐步检查您的问题是什么:
protected void Page_PreRender(object sender, EventArgs e)
var checkMe1 = _blobStorageService.getCloudBlobContainer();
var checkMe2 = checkMe1.GetDirectoryReference("ppp");
var cehckMe3 = checkMe2.ListBlobs();
var checkMe4 = from o in cehckMe3
select new Url = o.Uri .ToList();
fileDisplayControl.DataSource = checkMe4;
// List view to bind to its data source
fileDisplayControl.DataBind();
【讨论】:
以上是关于UpdatePanel 和 ListView 控件不显示来自 BLOB 的数据的主要内容,如果未能解决你的问题,请参考以下文章
通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)
ScriptManager和UpdatePanel用法 (ajax)
如何根据驻留在 updatePanel 中的 DataGrid 中所做的行选择来更新控件 [DataGrid、TextBoxes 和标签]?