我想重载DropDownList1.Item.Add()方法。让它可以加入一个对象。
因为它默认加入的对象item只有Text,Value两具属性。我希望在Add()中能加入一个结构体就好了。象这种效果:
struct student
{
  int Age;
  bool Sex;
  string Name;
}
DropDownList.Items.Add(student stu, string Text);  //后面的参数是用来显示的。

解决方案 »

  1.   

    对象加到下拉框有什么意义呢?
    下拉框只有text和value
    你加入这个对象到底哪几个属性作为text哪几个作为value呢?
    不明白你的意思啊
    DropDownList1.Item.Add(new ListItem("text","value"))一般都是这样的
      

  2.   

    把string放在text里, 把struct作为object放在Value里~~
      

  3.   

    DropDownList还是要生成html的,而html里面只能是string
    放个id吧
    提交之后根据id遍历
      

  4.   

    把string放在text里, 把struct作为object放在Value里~~
    ------------------------------------------
    这样的话覆盖默认的ToString()方法就可以了
      

  5.   

    参考
    class stu
    {
    public string name;
    public string password;
    public override string ToString()
    {
    return this.name+":"+this.password;
    }
    }
    stu stu1=new stu();
    stu1.name="aa";
    stu1.password="bb";
    DropDownList1.Items.Add(new ListItem(stu1.name,stu1.ToString()));
    DropDownList1.DataBind();
      

  6.   

    楼上的也是一种方法。把各种属性加在一起成一个字符串。
    不过VC里有种作法:
    用STL map,一个字符串对应一个结构体。在本地存储数据。象后台的一个表由多个记录组成一样。map <String, CStudent> mapStudent;
    mapStudent["Joe Lennon"] = CStudent(103547, 22);
    我暂时不知道放到C#里怎么用。
      

  7.   

    取出数据可用int Age = mapStudent["Joe Lennon"],C#里能这样用吗?
      

  8.   

    干吗要重载这个方法,我觉得好的做法是写一个继承DropDownList的控件,在这控件里实现你所说 的接口。如果是重载,那就把原来的接口也覆盖了。
    public class myDropDownList:DropDownList
    {
    struct student
    {
      int Age;
      bool Sex;
      string Name;
    }public void Addstruct(struct student,string Text)
    {
    //从struct中取出 student的信息,依次添加
    this.Item.Add(new ListItem("text","value"));

    }}