Опубликован: 30.05.2011 | Доступ: свободный | Студентов: 2250 / 144 | Оценка: 4.12 / 4.41 | Длительность: 12:00:00
Самостоятельная работа 6:

Работа с Windows Azure Blob

< Лекция 14 || Самостоятельная работа 6: 1234567 || Лекция 15 >

asp - код веб формы:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AzureBlobSample.aspx.cs"
  Inherits="WebRole1.AzureBlobSample" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large" 
            Text="My Image Gallery - Azure Blob Example"></asp:Label>
        <br />
        <br />
        <table style="width:100%;">
            <tr>
                <td>
                    <asp:Label ID="lb_name" runat="server" Text="Название"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tb_label" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lb_desc" runat="server" Text="Описание"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tb_desc" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td>
                     </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lb_file" runat="server" Text="Файл"></asp:Label>
                </td>
                <td>
                    <asp:FileUpload ID="fu_upload" runat="server" />
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td>
                    <asp:Button ID="btn_upload" runat="server" onclick="btn_upload_Click" 
                        Text="Загрузить" />
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td>
                     </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lb_status" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:ListView ID="lv_images" runat="server">
            <LayoutTemplate>
                <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
            </LayoutTemplate>
            <EmptyDataTemplate>
                <h2>No Data Available</h2>
            </EmptyDataTemplate>
            <ItemTemplate>            
                <div class="item">
                    <ul style="width:40em;float:left;clear:left" >
                        <asp:Repeater ID="blobMetadata" runat="server">
                        <ItemTemplate>
                            <li><%# Eval("Name") %><span><%# Eval("Value") %></span></li>
                        </ItemTemplate>
                        </asp:Repeater>
                        <li>

                        </li>
                    </ul>
                    <img src="<%# Eval("Uri") %>" alt="<%# Eval("Uri") %>" style="float:left"/>
                </div>
            </ItemTemplate>
        </asp:ListView>

                    </td>
            </tr>
            <tr>
                <td>

                    <br />
                </td>
                <td>
                     </td>
            </tr>
        </table>
    
    </div>
    </form>
</body>
</html>

Отметим, что элемент управления, при помощи которого мы будем отображать имеющиеся изображения - это ListView с идентификатором lv_images. Для того чтобы сделать возможным повторени вышеуказанного шаблона для каждого элемента списка мы использовали Repeater (подробнее см. в списке вспомогательных материалов)

Теперь в метод Page_Load добавим код, который при первой загрузке нашей страницы будет проверять наличие контейнера и выводить сообщение о возможных ошибках и привязывать lv_images к источнику данных, вызовом метода RefreshGallery:

try
            {
                if (!IsPostBack)
                {
                    this.EnsureContainerExists();
                }
                this.RefreshGallery();
            }
            catch (System.Net.WebException we)
            {
                lb_status.Text = "Network error: " + we.Message;
                if (we.Status == System.Net.WebExceptionStatus.ConnectFailure)
                {
                    lb_status.Text += "<br />Please check if the blob service is running at " +
                    ConfigurationManager.AppSettings["storageEndpoint"];
                }
            }
            catch (StorageException se)
            {
                Console.WriteLine("Storage service error: " + se.Message);
            }

Метод RefreshGallery - привязывает lv_images к источнику данных(контейнеру бинарных объектов):

private void RefreshGallery()
        {
            lv_images.DataSource =
              this.GetContainer().ListBlobs(new BlobRequestOptions()
              {
                  UseFlatBlobListing = true,
                  BlobListingDetails = BlobListingDetails.All
              });
            lv_images.DataBind();
        }

Запустим приложение и убедимся, что оно выполняется верно.


Рис. 20.4.
< Лекция 14 || Самостоятельная работа 6: 1234567 || Лекция 15 >
Роза Мальцева
Роза Мальцева
Игнат Гринько
Игнат Гринько

Примерно месяц назад получил на сайте код Дримспарк, сегодня вводил его на сайте Дримспарк, пишет: Недействительный код проверки. Проверьте правильность введенного кода. Код вводил методом: скопировать-вставить.

Дмитрий Дряничкин
Дмитрий Дряничкин
Россия, Казань
Атанас Маринов
Атанас Маринов
Болгария