我可以从Container.DataItem获取数据数组吗?

时间:2010-07-29 09:53:14

标签: c# asp.net vb.net

我有一个ListView,其中我有一个为用户创建图像的功能。我将userGender,userImage1name,userIsImage1Aprooved值传递给我生成图像的函数。 即。如果用户已批准图像我将其返回,否则我会根据性别返回默认图像。

我的问题是,有什么办法可以避免将3个参数传递给该函数并传递整个DataRow,这样我就可以得到我需要的列值吗?

实际上,我传递了大约12个参数,让你感觉很轻松。

即。我希望实现类似的东西<%#GetImage(Container.Item)%>在GetImage()中,我可以访问Item(“some_column_name”)或C#version Item [“some_column_name”]。

2 个答案:

答案 0 :(得分:1)

你试过这个吗?因为你的代码几乎可以工作(应该使用Container.DataItem)。

创建一个方法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)

是的,您可以,只需将其投射到该类型。