gridview绑定List<类>时,当类的属性为接口时,无法绑定数据.//JobSeeker 类
//JobSeeker 类含有一个类型为IMobile 的属性.
public class JobSeeker
{ public int JobSeekerID
{
get;
set; } public IMobile Mobile
{
get;
set;
}
}
//IMobile接口
public interface IMobile
{
string Number { get; set; }
bool IsValid();
}=======================List<JobSeeker> jobSeekerList = new List<JobSeeker>();
jobSeekerList = jobSeekerFactory.GetJobSeekerList();//此方法获得一些JobSeeker 对象集合.gvMobileList.DataSource = jobSeekerList;
gvMobileList.DataBind();
结果页面显示只有JobSeekerID 字段,而Mobile字段则显示为"命名空间.Mobile",无法显示具体在Number值.经调试,手机号码是有值的.期待高人点拨!!!!
//JobSeeker 类含有一个类型为IMobile 的属性.
public class JobSeeker
{ public int JobSeekerID
{
get;
set; } public IMobile Mobile
{
get;
set;
}
}
//IMobile接口
public interface IMobile
{
string Number { get; set; }
bool IsValid();
}=======================List<JobSeeker> jobSeekerList = new List<JobSeeker>();
jobSeekerList = jobSeekerFactory.GetJobSeekerList();//此方法获得一些JobSeeker 对象集合.gvMobileList.DataSource = jobSeekerList;
gvMobileList.DataBind();
结果页面显示只有JobSeekerID 字段,而Mobile字段则显示为"命名空间.Mobile",无法显示具体在Number值.经调试,手机号码是有值的.期待高人点拨!!!!
解决方案 »
- 导出excel速度优化
- GridView中Header的显示问题……
- 购物车产品数量更改问题
- datagrid 自动绑定时已经设置为单元格内容不换行了,但可能时因为字段太多(40个字段)还时会换行,该怎么办
- 求解一个关于DetailsView控件的一个技巧问题?
- 在MSDN的TreeView里面找不到createTreeNode这个函数,这个函数是什么函数?
- ado.net中OleDb.OleDbDataAdapter不能用嵌套的sql语句么?
- asp网站上传图片的时候,显示Server 对象 错误 'ASP 0177 : 800401f3',请问如何解决?
- 如何把得到的结果存放在一个字符串数组内
- ▲▲▲微软专家,各位朋友请看过来:▲▲▲
- 更新DataGrid时的问题
- 通过花生壳无法访问网站
这个我已经实现了。在Mobile类中。
public class Mobile : IMobile
{
public static ISqlCommand iSqlCommand;
public string Number
{
get;
set; } public bool IsValid()
{
string MobilePattern="1[358]\\d{9}"; return Regex.IsMatch(Number, MobilePattern);
}
}
点出来之后,就会报错:“在选定的数据源上未找到名为“Mobile.Number”的字段或属性。”另外,我按照你的说法,把 JobSeeker 类的接口属性改成类属性了,即
public Mobile Mobile
{
get;
set;
}依然无法显示mobile的number值内容。(断点监视时,这里面都是有值的!)
var list = jobSeekerList.Select(a => new { a.JobSeekerID, Number = a.Mobile.Number, IsValid = a.Mobile.IsValid() });
gvMobileList.DataSource = list;
gvMobileList.DataBind();或者,也可以在前台改用模板绑定<asp:GridView ID="gvMobileList" Runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="JobSeekerID" />
<asp:TemplateField>
<ItemTemplate><%#Eval("Mobile.Number") %></ItemTemplate></asp:TemplateField>
<asp:TemplateField>
<ItemTemplate><%# (Container.DataItem as JobSeeker).Mobile.IsValid() %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>