我有一个ListView,其中我有一个为用户创建图像的功能。我将userGender,userImage1name,userIsImage1Aprooved值传递给我生成图像的函数。 即。如果用户已批准图像我将其返回,否则我会根据性别返回默认图像。
我的问题是,有什么办法可以避免将3个参数传递给该函数并传递整个DataRow,这样我就可以得到我需要的列值吗?
实际上,我传递了大约12个参数,让你感觉很轻松。
即。我希望实现类似的东西<%#GetImage(Container.Item)%>在GetImage()中,我可以访问Item(“some_column_name”)或C#version Item [“some_column_name”]。
答案 0 :(得分:1)
创建一个方法GetImage(object o),它返回一个字符串到图像url。将对象转换为DataRowView对象以获取所需的所有值。 例如:
public string GetImage(object o)
{
DataRowView dataRowView = o as DataRowView;
if (dataRowView == null)
return "default_image.jpg";
// Do your big if statement here
if (dataRowView["column"] == "some values")
return "image.jpg";
else
return "default_image.jpg";
}
在aspx中使用:
<%# GetImage(Container.DataItem) %>
答案 1 :(得分:0)
是的,您可以,只需将其投射到该类型。