实际上我正在处理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>
答案 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 });
}
希望这有帮助。