我有不同类型的列表,根据所选列表,我的网格需要填充。这些列表项类定义如下:
public class plist
{
public DateTime date_modified { get; set; }
public DateTime date_added { get; set; }
}
public class cList1 :plist
{
public string code { get; set; }
public string name { get; set; }
}
public class cList2 : plist
{
public string typename { get; set; }
public int typecode { get; set; }
}
在我的网页中,我需要根据选择的clist1
或clist2
列表填充控件。
protected void Page_Load(object s,EventArgs e)
{
List<cList1> codes = new List<cList1>();
List<cList2> types = new List<cList2>();
switch (getGrpSelValue())
{
case (int)LookupType.LU1:
codes = getMyCodes(0, null, null);
bindMyGrid(cList1, masterGrd);
break;
case (int)LookupType.LU2:
types = getMyTypes(0, null, null);
bindMyGrid(cList2, masterGrd);
break;
default:
break;
}
}
public void bindMyGrid<T>(List<T> list, GridView gv)
{
//binds the grid here
}
是否有一种方法来声明一个泛型列表对象,然后分配代码或类型给它,并调用bindMyGrid
方法一次?
var codes = new List<object>();
if (condition)
codes.Add(someClass1);
else
codes.Add(someClass2);
您可以将任何对象作为object
存储在List<object>
中。
if (condition)
BindMyGrid<Class1>(someListClass1);
else
BindMyGrid<Class2>(someListClass2);