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

C# 我可以从Container.DataItem中获取数据数组吗?,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我有一个ListView,其中有一个为用户创建图像的函数。我将userGender、userImage1name、userisimage1aproved值传递给生成图像的函数。 例如,若用户已批准图像,我将其返回,否则我将根据性别返回默认图像 我的问题是,有没有办法避免向该函数传递3个参数,并传递整个DataRow,以便获得所需列的值 实际上,我传递了大约12个参数,这让你很容易 例如,我想在GetImage()中实现类似的功能,而在GetImage()中,我将能够访问项(“某个列名称”)或C版

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

我的问题是,有没有办法避免向该函数传递3个参数,并传递整个DataRow,以便获得所需列的值

实际上,我传递了大约12个参数,这让你很容易


例如,我想在GetImage()中实现类似的功能,而在GetImage()中,我将能够访问项(“某个列名称”)或C版本项[“某个列名称]。

是的,您可以将其强制转换为该类型。

您尝试过吗?因为您的代码几乎可以正常工作(应该使用Container.DataItem)

创建一个方法GetImage(对象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) %>


如果容器位于ListView中,则类型是什么?ListViewRowItem?使用调试器查看:)如何访问此对象以及应将其强制转换为什么?感谢我这样做,现在我收到一个错误“索引1为负或高于行数”。这与您在DataRowView或其他地方访问数据的方式有关。。。