GridView绑定List的问题?有人碰到过吗?

节旺达 2010-08-17 02:26:59
页面代码:

<asp:GridView ID="gv_LtxList_ZC" runat="server" Width="90%" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Sm.Number" HeaderText="编码" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="Sm.xm" HeaderText="姓名" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="sm.xb" HeaderText="性别" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="sm.deptName" HeaderText="部门名称" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="dwName" HeaderText="单位名称" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="还原">
<ItemTemplate>
<a href='#' onclick='return huanyun(<%#Eval("sm.id") %>)'>
<img src="../../images/export.gif" border=0px /></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<a href='#' onclick=''>
<img src="../../images/delete.gif" border=0px /></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>


后台绑定代码:

/// <summary>
/// 初始化
/// </summary>
private void InitLTX()
{
MemberDAL md = new MemberDAL();
//找到转出的
gv_LtxList_ZC.DataSource= md.findLtx("2");
gv_LtxList_ZC.DataBind();
}


md.findLtx("2")中的代码:


/// <summary>
/// 查找指定状态的离退休人员,0-表示未审核 1- 表示已通过审核 2- 已转出 3- 已删除
/// </summary>
/// <param name="p"></param>
/// <returns></returns>
public List<MemberInfo> findLtx(string state)
{
var member = from p in db.szb_member
join d in db.sys_dw on p.dwId equals d.id
where p.state.Equals(state)
select new MemberInfo
{
Sm = p,
DwName = d.dwName
};

return member.ToList();
}


MemberInfo 中的代码:

/// <summary>
///MemberInfo 的摘要说明
/// </summary>
public class MemberInfo
{
public MemberInfo()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
private szb_member _sm;

public szb_member Sm
{
get { return _sm; }
set { _sm = value; }
}
private string _dwName;

public string DwName
{
get { return _dwName; }
set { _dwName = value; }
}

}



现在想绑定GridView,通过调试可以读取数据库数据,就是在绑定的时候提示错误:


在选定的数据源上未找到名为“Sm.Number”的字段或属性。

使用RadControl 这样写就没有问题,GridView 如何实现呢?
...全文
468 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sac415 2011-07-07
  • 打赏
  • 举报
回复
public List<MemberInfo> findLtx(string state)
{
var member = from p in db.szb_member
join d in db.sys_dw on p.dwId equals d.id
where p.state.Equals(state)
select new MemberInfo
{
Sm = p,
DwName = d.dwName
};

return member.ToList(MemberInfo);
}

在return后面的 ToList<>中,加上 models "MemberInfo"
节旺达 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sglcj 的回复:]
你那list里面读取出来有这个数据不?
[/Quote]

有的
End 2010-08-17
  • 打赏
  • 举报
回复
你那list里面读取出来有这个数据不?
节旺达 2010-08-17
  • 打赏
  • 举报
回复
找到解决方法了。

<asp:BoundField DataField="Sm.Number" HeaderText="编码" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>


放DataField里不行,把这列转换成模板,然后用Eval("Sm.Number")就可以了,这是为什么呢???
yl1456765 2010-08-17
  • 打赏
  • 举报
回复
你在后台用Sm . 看里面有 Number这个字段没
qiandongwu 2010-08-17
  • 打赏
  • 举报
回复
GridView绑定List有那么复杂吗??难道楼主用的语言不是ASP,看着好复杂啊
ITcxf 2010-08-17
  • 打赏
  • 举报
回复
foreach(MemberInfo mb in list)
{
实例化数据层;
mb. Sm=实例化数据层.读取number方法名(mb.number);
}

放在你的读取方法后 试试看
节旺达 2010-08-17
  • 打赏
  • 举报
回复
journey_q 2010-08-17
  • 打赏
  • 举报
回复
不明白,给你再顶
H随风 2010-08-17
  • 打赏
  • 举报
回复
学习了
完美-态度 2010-08-17
  • 打赏
  • 举报
回复
帮顶,学习中。
节旺达 2010-08-17
  • 打赏
  • 举报
回复
难道是GridView不支持List<MemberInfo>里传值类的方式?

用最新版的RadControl(Telerik)中的RadGird可以实现。
节旺达 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 journey_q 的回复:]
C# code

private szb_member _sm;

public szb_member Sm
{
get { return _sm; }
set { _sm = value; }
}


szb_member 对象在那,看看这个里面怎么定义的,

Eval里面绑定的是:

Sm下面定义的,……
[/Quote]

LinQ自动生成的,下面是代码:

应该没有写错的,就是Sm.Number



[Column(Storage="_Number", DbType="NVarChar(20) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
public string Number
{
get
{
return this._Number;
}
set
{
if ((this._Number != value))
{
this.OnNumberChanging(value);
this.SendPropertyChanging();
this._Number = value;
this.SendPropertyChanged("Number");
this.OnNumberChanged();
}
}
}

V-Far 2010-08-17
  • 打赏
  • 举报
回复
纠结.linq的.还不会呢
没想到CSDN的C# CODE高亮也支持LINQ...
journey_q 2010-08-17
  • 打赏
  • 举报
回复

private szb_member _sm;

public szb_member Sm
{
get { return _sm; }
set { _sm = value; }
}

szb_member 对象在那,看看这个里面怎么定义的,

Eval里面绑定的是:

Sm下面定义的,也就是Sm.XXX
节旺达 2010-08-17
  • 打赏
  • 举报
回复
改成下面这样,提示上面的错误:

在选定的数据源上未找到名为“Number”的字段或属性。


<asp:GridView ID="gv_LtxList_ZC" runat="server" Width="90%" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Number" HeaderText="编码" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="xm" HeaderText="姓名" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="xb" HeaderText="性别" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="deptName" HeaderText="部门名称" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="dwName" HeaderText="单位名称" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="还原">
<ItemTemplate>
<a href='#' onclick='return huanyun(<%#Eval("id") %>)'>
<img src="../../images/export.gif" border=0px /></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<a href='#' onclick=''>
<img src="../../images/delete.gif" border=0px /></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
细嗅蔷薇 2010-08-17
  • 打赏
  • 举报
回复
呃....
擦........... 刚看错 向楼主道歉...
节旺达 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lovesheng1212 的回复:]
MemberInfo 中字段怎么写的 Eval的时候就怎么写
你写Sm。Number 肯定找不到咧 MemberInfo 中根本没有这个字段还找个毛啊
[/Quote]

按照你的思路,把所有的sm.都去了。但是还是提示:

在选定的数据源上未找到名为“Number”的字段或属性。
细嗅蔷薇 2010-08-17
  • 打赏
  • 举报
回复
MemberInfo 中字段怎么写的 Eval的时候就怎么写
你写Sm。Number 肯定找不到咧 MemberInfo 中根本没有这个字段还找个毛啊

62,071

社区成员

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

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

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

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