datagrid绑定类对象问题

lintsing 2006-10-27 10:06:59
我的datagrid数据源是类对象,不是dataset,想知道如何实现
eg:
定义两个方法:
AddrInfo(string area,string county,string street);
AccountInfo(string userId, string userName,AddrInfo userAddr);
....
添加数据:
IList iList =new ArrayList();
AddrInfo addrInfo =new AddrInfo("福州","鼓楼","五一路");
AccountInfo accInfo =new AccountInfo("1234","张三",addrInfo);
iList.Add(accInfo);
...再添几行...
DataGrid1.DataSource = iList;
DataGrid1.DataBind();
.......
我想在页面上显示出userId\userName\area\county\street
但是在页面上只显示userId、userName,addrInfo里的信息无法显示,请各位高手帮忙解决一下,小弟谢先~!!
...全文
235 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordgod 2006-10-27
  • 打赏
  • 举报
回复
加多一个数组类。。
我贴个代码吧。

private void dg1bind()
{
TestItem[] TestItems = new TestItem[1];
test1 test1 = new test1(1, "Joe");
test2 test2 = new test2("true", 1000);

TestItems[0] = new TestItem(test1.TestID,test1.TestName,test2.TestBool,test2.TestAmount);

this.DataGrid1.DataSource = TestItems;
this.DataGrid1.DataBind();
}

public class test1
{
private int m_TestID;
private string m_TestName;
public int TestID
{
get
{
return m_TestID;
}
}

public string TestName
{
get
{
return m_TestName;
}
}

public test1(int TestID,string TestName)
{
this.m_TestID = TestID;
this.m_TestName = TestName;
}

}

public class test2
{
private string m_TestBool;
private double m_TestAmount;

public string TestBool
{
get
{
return m_TestBool;
}
}

public double TestAmount
{
get
{
return m_TestAmount;
}
}
public test2(string TestBool ,double TestAmount)
{
this.m_TestBool = TestBool;
this.m_TestAmount = TestAmount;
}

}
public class TestItem
{

private int m_TestID;
private string m_TestName;
private string m_TestBool;
private double m_TestAmount;

public int TestID
{
get
{
return m_TestID;
}
}

public string TestName
{
get
{
return m_TestName;
}
}

public string TestBool
{
get
{
return m_TestBool;
}
}

public double TestAmount
{
get
{
return m_TestAmount;
}
}

public TestItem(int TestID,string TestName,string TestBool ,double TestAmount)
{
this.m_TestID = TestID;
this.m_TestName = TestName;
this.m_TestBool = TestBool;
this.m_TestAmount = TestAmount;
}

}
Knight94 2006-10-27
  • 打赏
  • 举报
回复
你的存放到arraylist中的所有对象类型都一样吗?
lintsing 2006-10-27
  • 打赏
  • 举报
回复
谢谢楼上的,类的变量、属性等我都定义了,上面写的时候只是给省略了
public class AddrInfo {

private string _area;
private string _county;
private string _street;

public AddrInfo(string area, string county, string street) {
this._area = area;
this._county = county;
this._street = street;
}

// Properties
public string Area {
get { return _area; }
set { _area = value; }
}

public string County {
get { return _county; }
set { _county = value; }
}

public string Street {
get { return _street; }
set { _street = value; }
}

}
.....
Knight94 2006-10-27
  • 打赏
  • 举报
回复
to 但是在页面上只显示userId、userName,addrInfo里的信息无法显示,请各位高手帮忙解决一下,小弟谢先

需要在类里把所有需要显示的对象定义为属性,这样才能绑定显示。
例如
public class UserInfo
{
public string UserName
{
get{ return _username;}
}
//...
}
lintsing 2006-10-27
  • 打赏
  • 举报
回复
难道这样弄太复杂了?要是不用DataGrid,象asp那样直接在aspx页面上输出是可以的,但太麻烦了,要涉及到分页等等
xieyun9958 2006-10-27
  • 打赏
  • 举报
回复
没弄过。。一般都用DS来绑定的。。
wuxingmaxail 2006-10-27
  • 打赏
  • 举报
回复
这样弄? 没弄过!
lintsing 2006-10-27
  • 打赏
  • 举报
回复
问题不在那里吧,就算一条记录也是只会显示userId、userName这两个字段
  • 打赏
  • 举报
回复
addrInfo
只实列化了一个。。你不停的ADD。。导致这个addrInfo 里有多条数据。。
如是会形成一个多维数组。。
显示的时候出问题就很正常了。。
myminimouse 2006-10-27
  • 打赏
  • 举报
回复
转成dataset...
  • 打赏
  • 举报
回复
顶了再看。。
lintsing 2006-10-27
  • 打赏
  • 举报
回复
100分啊,没人要么

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧