快速提问。我确信这是可能的,只是无法让它发挥作用。 我有一个gridview。有一个gridview。 gridview绑定到我的自定义类的列表。该类公开了一个图像链接以及图像的高度和宽度。我在gridview中有一个图像控件。我已将Image Url绑定到正确的属性。现在,我想绑定高度和宽度属性。但每次我这样做,我都会收到以下错误:
无法创建类型的对象 'System.Web.UI.WebControls.Unit'来自 它的字符串表示 '“<%#Bind(”GetImageHeight()“)%'for '高度'属性。
以下是标记的示例:
<asp:Image runat="server" ID="imgProduct" ImageUrl='<%#Bind("ImageUrl")%>'
Height="<%#Bind("GetImageHeight()")%>" Width="<%#Bind("GetImageWidth()")%>">
</asp:Image>
所以,简而言之......如何绑定不是字符串的属性?
方法示例GetImageHeight和GetImageWidth:
public Unit GetImageHeight()
{
Unit u = new Unit(Convert.ToString(ImageHeight) + "px");
return u;
}
public Unit GetImageWidth()
{
Unit u = new Unit(Convert.ToString(ImageWidth) + "px");
return u;
}
答案 0 :(得分:1)
DOH!我第一次错过了它。尝试删除绑定中的引号
Height="<%#Bind("GetImageHeight()")%>"
应该看起来像
Height="<%#Bind(GetImageHeight())%>"
并返回一个int应该可以正常工作。不需要方法中的所有繁忙工作。
我可能错了......
答案 1 :(得分:0)
您可以更改GetImageHeight / Width()方法以返回Unit吗?
答案 2 :(得分:0)
这对我来说很有用,试一试:
<asp:Image runat="server" ID="imgProduct" ImageUrl='test.jpg'
Height='<%# GetImageHeight() %>' Width='<%# GetImageWidth() %>' />
在.cs:
protected int GetImageHeight()
{
return 5;
}
protected int GetImageWidth()
{
return 5;
}
渲染:
<img id="imgProduct" src="test.jpg" style="height:5px;width:5px;border-width:0px;" />