1

ascx実際、指定されたフォルダーに画像を表示するファイルに取り組んでいます。

タスクは、各画像にラジオ ボタンを配置することです。ラジオ ボタンが選択されると、適切な画像の詳細 (画像の名前など) がポップアップ ボックスに表示されます。

お願い、仕事を終わらせるのを手伝って!

<asp:DataList ID="dlAssignftp" Visible="false" runat="server" RepeatColumns="5" RepeatDirection="Vertical"
    HorizontalAlign="left" CellPadding="1" CellSpacing="1" Width="100%">
    <ItemTemplate>
        <ul class="gallery clearfix slideshow">
            <li>
                <a href='<%# DataBinder.Eval (Container.DataItem, "Image Path") %>' rel="prettyPhoto[pp_gal]">                
                <asp:Image ImageUrl='<%# DataBinder.Eval (Container.DataItem, "Image Path") %>' ID="imgftp"
                    runat="server" Height="100px" Width="100px" Visible="true" />
                 </a>
            </li>
            <asp:RadioButton ID="rbtn_ftpimg" runat="server" Text="Select" GroupName="rbtn_ftpimg_grp" Checked="false" TextAlign="Right" OnCheckedChanged="rbtn_ftpimg_Changed" AutoPostBack="true"  />
        </ul>
        <%--</a>--%>
    </ItemTemplate>
</asp:DataList>
4

1 に答える 1

0

正確に探しているプロパティに応じて、次のようなことができます。

Image img = Image.FromFile(<path to image on server>);
//return data to web: img.Width, img.Height etc. 

さらに、次のようなことができると思います。

PropertyItem[] itms = img.PropertyItems;
foreach(PropertyItem item in itms)
{
      //iterate through items and do work
}

それは役に立ちますか?

- - 編集 - -

上記のコードは、探している詳細を提供するはずですが、それらを表示する方法は完全にあなた次第です。私がおそらく行うことは、次のようなものです。

 <script language="javascript">
 function GetImageDetails(id)
 {
    $.ajax({
    url: '/Images/GetImageDetails',
    type: "POST",
    data: { imageId: id },
    dataType: 'json',
    success: function (data) {
            var content;
            content = data[0].Width;
            content += "<br>";
            content += data[0].Height;
            content += "<br>";
            //etc
            alert(content);
    }
   });
 }
 </script>
 <input type=radio onClick="GetImageDetails(1);"> 

次に、サーバー側では、次のような Web サービスを使用できます。

 public JsonResult GetImageDetails(int ID)
 {
     var img = Image.FromFile(<path to image on server>);
     return Json(new { width = img.Width, height = img.Height });
 }

これは、必要に応じてさまざまな方法で変更できます。たとえば、id パラメーターを Web サービス メソッドに渡していることに気付くでしょう (ただし、この例では何もしていません)。これを使用して、データベースから画像の物理的な場所を取得します。または、画像へのパスを渡すだけで、データベース サーバーへのラウンド トリップを回避できます。繰り返しますが、これをどのように行うかは本当にあなた次第です。

最後に、上記の Web サービス メソッドは、MVC 3/4 環境で見られるものと似ています。MVC を実行していない場合は、代わりに次のようにすることができます。

 public string GetImageDetails(int ID)
 {
     var img = Image.FromFile(<path to image on server>);
     var serializer = new JavaScriptSerializer();
     return serializer.Serialize(new { width = img.Width, height = img.Height });
 }

お役に立てれば。

于 2012-09-07T12:25:41.637 に答える