1

实际上,我正在处理一个ascx在指定文件夹中显示图像的文件。

The task is to place a radio button for each image, and when a radio-button is selected, the details (like the image's name) of the appropriate image should be shown in a pop-up box.

请帮我完成任务!

<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 Service 方法(但在示例中我没有对它做任何事情),我将使用它从数据库中提取图像的物理位置。或者,您可以只传递图像的路径,以避免往返数据库服务器。同样,你如何去做这件事真的取决于你。

最后一点,上述 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 回答