【发布时间】:2011-01-27 03:03:42
【问题描述】:
我有一个包含两个数据表的数据集。
在第一个数据表中,我有 EmpNo、EmpName 和 EmpAddress
在第二个数据表中,我有 Empno、EmpJoindate、EmpSalary。
我想要一个结果,我应该在网格视图中显示 EmpName 作为标签和他/她的详细信息
我用第一个表填充数据列表,并将 EmpNo 作为数据键。
然后我在具有 EmpNo、EmpJoinDate 和 EmpAddress 的数据表中填充 gridview。
我的代码如下所示
Datalist1.DataSource = dt;
Datalist1.DataBind();
for (int i = 0; i < Datalist1.Items.Count; i++)
{
int EmpNo = Convert.ToInt32(Datalist1.DataKeys[i]);
GridView gv = (GridView)Datalist1.FindControl("gv");
gv.DataSource = dt2;
gv.DataBind();
}
现在我有一个问题,我得把对应Employee的Details绑定到gridview上。而上面的代码将在gridview中显示所有员工的所有详细信息。
如果我们使用 IEnumerable,我们会给出一个条件 where(a=>a.eno=EmpNo),然后将该列表绑定到 gridview。
如何在数据表中执行此操作。
请不要给我建议更改导致两个表中的值的存储过程,因为那无法更改。 我必须在现有的对象中找到解决方案。
问候 盒马
嗨, 我修改了程序如下 Igor,而不是 datarelation,(我的 TL 不赞成)我使用了 IEnumerable
DataTable dt = new DataTable(); dt.Columns.Add("EmpNo"); 对于 (int i = 65; i
DataTable dt2 = new DataTable();
dt2.Columns.Add("EmpNo");
dt2.Columns.Add("EmpName");
for (int i = 65; i < 70; i++)
{
DataRow dr = dt2.NewRow();
dr["EmpNo"] = i.ToString();
dr["EmpName"] = Convert.ToChar(i);
dt2.Rows.Add(dr);
}
Datalist1.DataSource = dt;
Datalist1.DataBind();
IEnumerable<DataRow> sequence = dt2.AsEnumerable();
for (int i = 0; i < Datalist1.Items.Count; i++)
{
string EmpNo = Datalist1.DataKeys[i].ToString();
string strExpr = "EmpNo =" + EmpNo.ToString();
GridView Gridview1 = (GridView)Datalist1.Items[i].FindControl("Gridview1");
Gridview1.DataSource = sequence.Where(t => t.Field<string>("EmpNo") == EmpNo);
Gridview1.DataBind();
}
我的 Designer.aspx 如下
<asp:DataList ID="Datalist1" runat="server" DataKeyField="EmpNo">
<ItemTemplate>
<asp:GridView ID="Gridview1" runat="server">
</asp:GridView>
</ItemTemplate>
</asp:DataList>
在执行时我没有观察到任何结果,并且我看到错误
RowError HasErrors 在屏幕上
我在gridview中包含了绑定字段控件 作为
<asp:GridView ID="Gridview1" AutoGenerateColumns="true" runat="server">
<Columns>
<asp:BoundField DataField="EmpNo" />
</Columns>
</asp:GridView>
在执行时,它会抛出一个错误说明 在所选数据源中找不到名为“EmpNo”的字段或属性。
我使用调试模式检查了“序列”,它在数组中有值, 我已经强调了,
那我哪里错了
- 结果视图 展开结果视图将枚举 IEnumerable
- [0] {System.Data.DataRow} System.Data.DataRow HasErrors false bool
- ItemArray {object[2]} object[] [0] "65" 对象 {string} [1] "A" 对象 {string} 行错误“”字符串 RowState 添加了 System.Data.DataRowState
- 表 {} System.Data.DataTable
- 静态成员
- 非公共成员
【问题讨论】: