如何通过选择相关的单选按钮显示在asp页面上显示的图像的属性

时间:2012-09-07 11:19:03

标签: c# .net ascx

实际上我正在处理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>

1 个答案:

答案 0 :(得分: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 });
 }

希望这有帮助。