我有一个带有表格的SQL Server数据库,其中列出了图像的文件名。我打算从表格中的数据中为页面上的Image控件分配ImageUrl。我在页面上放置了一个SQLDataSource控件,然后尝试在其中放置一个FormView控件,并在其中放置一个Image控件。但我看不出如何通过数据绑定将值分配给ImageUrl属性。
答案 0 :(得分:8)
在你用来返回数据的任何类型的控制中,你会做类似的事情......
<asp:imagebutton id="btnId" runat="server" ImageUrl='<%# Bind("ImgUrl") %>' />
使用它并尝试一下......我所做的大部分工作都是在datagridviews或者转发器中......但这并不重要,它的重要性或重要性。
为您提供更多信息Rod。
<asp:SqlDataSource
id="SqlDataSource1"
runat="server"
DataSourceMode="DataReader"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT LastName FROM Employees">
</asp:SqlDataSource>
<asp:SqlDataSource
id="SqlDataSource2"
runat="server"
DataSourceMode="DataReader"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT FirstName FROM Employees">
</asp:SqlDataSource>
<asp:ListBox
id="ListBox1"
runat="server"
DataTextField="LastName"
DataSourceID="SqlDataSource1">
</asp:ListBox>
<asp:ListBox
id="ListBox2"
runat="server"
DataTextField="FirstName"
DataSourceID="SqlDataSource2">
</asp:ListBox>
如果有帮助,请告诉我
答案 1 :(得分:2)
这种类型的绑定更简洁,至少对我来说更干净,就是处理ItemDataBound事件中的绑定。
所以你会做类似的事情:
Image imageToBind = e.Item.FindControl("imgTest") as Image;
image.ImageUrl = (string)DataBinder.Eval(e.Item.DataItem, "ColumnName");
我发现它比在实际标记中更优雅。
答案 2 :(得分:1)
.aspx.cs
public string GetImage(string status)
{
if (status=="Active")
return "~/images/green_acti.png";
else
return "~/images/red_acti.png";
}
的.aspx
<asp:TemplateField HeaderText="|| Status ||">
<ItemTemplate>
<asp:Image ID="imgGreenAct" ImageUrl='<%# GetImage(Convert.ToString(DataBinder.Eval(Container.DataItem, "truck_status")))%>' AlternateText='<%# Bind("truck_status") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>