Элементы управления UpdatePanel и ListView не отображают данные из BLOB - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь заполнить данные (имена файлов гиперссылкой) из BLOB-объекта Azure.

Вот мой код:

UpdatePanel:

<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.

Кто-нибудь, пожалуйста, скажите мне, что не так в этом процессе?

1 Ответ

0 голосов
/ 11 марта 2019

Ваш вопрос слишком широкий.Вы должны шаг за шагом проверить, в чем ваша проблема:

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();
}
...