Изображения из контейнеров BLOB-объектов Azure, не отображаемых в ListView на странице ASP.net - PullRequest
0 голосов
/ 12 февраля 2019

Я загружаю Listview из базы данных сервера sql.Строки содержат blob ID.Я создаю blob ID s из базового URL контейнера BLOB-объектов, а затем пытаюсь отобразить изображения.Ничего не произошло.Вот мой код:

protected void PhotosListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    var itm = e.Item;
    ImageButton imgBtn = (ImageButton)itm.FindControl("itemImageButton");
    Label TNlbl = (Label)itm.FindControl("BlobPhotoIDLabel");
    string blobContainerId = (string)Session["BlobContId"];
    string imgUrl = blobClient.StorageUri.PrimaryUri + blobContainerId.ToLower() + "/" + TNlbl.Text;
    imgBtn.ResolveClientUrl(imgUrl);
}

Вот разметка:

<td runat="server" style="background-color: #DCDCDC; color: #000000;">
                <asp:ImageButton ID="itemImageButton" runat="server" 
                            CommandArgument="<%# Container.DataItem %>" 
                            Width="180" Height="120"
                            OnCommand="itemImageButton_Command"/>
                <br />PhotoId:
                <asp:Label ID="PhotoIdLabel" runat="server" Text='<%# Eval("PhotoId") %>' />
                <br />PhotoTitle:
                <asp:Label ID="PhotoTitleLabel" runat="server" Text='<%# Eval("PhotoTitle") %>' />
        // etc

Черт возьми, подобный код на другой странице работает нормально.Что мне не хватает?Я пробовал это также в привязке данных и событиях, связанных с данными.Название и другие данные из базы данных отображаются нормально.Созданные URL-адреса BLOB-объектов кажутся действительными.

1 Ответ

0 голосов
/ 12 февраля 2019

Созданные URL-адреса BLOB-объектов выглядят действительными.

Вы можете попробовать добавить URL-адрес BLOB-объекта в браузер, чтобы проверить, доступно ли изображение.

Если вы не можете просмотреть его в браузере, то, как сказал Гаурав, проверьте Public Access Level вашего контейнера.Это должно быть Blob или Container вместо Private(no anonymous access).

Если URL-адрес действителен, используйте следующий код для отображения изображения:

Url=imgBtn.ResolveClientUrl(imgUrl); //Gets a URL that can be used by the browser.
imgBtn.imageUrl(Url);

Подробнее о ResolveClientUrl, вы можете обратиться к этой статье .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...