2010-07-29 27 views
0

我有一个ListView,其中我有一个为用户创建图像的功能。我将userGender,userImage1name,userIsImage1Aprooved值传递给我生成图像的函数。 即。如果用户已批准图像我将其返回,否则我会返回基于性别的默认图像。我可以从Container.DataItem中获取数据数组吗?

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

在现实中,我传递了大约12个参数,这对您来说很简单。

即。我想在GetImage()中实现类似于GetNextImage(Container.Item)%>的操作,我可以访问Item(“some_column_name”)或C#version Item [“some_column_name”]。

回答

1

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

创建一个方法GetImage(object o),它将一个字符串返回给图像url。将该对象转换为DataRowView对象以获取所需的所有值。 为exampe:

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) %> 
+0

我如何访问这个对象,我应该把它投给什么? – eugeneK 2010-07-29 10:11:12

+0

看我的编辑(C#) – Zenuka 2010-07-29 10:18:31

+0

谢谢我这样做,现在我得到一个错误“索引1是负数或以上的行数。” – eugeneK 2010-07-29 10:24:33

0

是的,你可以,只是把它投入类型。

+0

类型是,如果集装箱里面的ListView什么? ListViewRowItem? – eugeneK 2010-07-29 10:08:49

+1

看看调试器:) – leppie 2010-07-29 10:34:41

相关问题