日期:2014-05-18  浏览次数:20459 次

DataBinding:“System.Data.DataRowView”不包含名为“zh_Staff_1”的属性。--------在线等
DataBinding:“System.Data.DataRowView”不包含名为“zh_Staff_1”的属性。
一个关联表,其中一个表A和同一个表zh_Staff关联两次

C# code
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
                    <ItemStyle HorizontalAlign="Center" Width="60px" />
                    <HeaderStyle HorizontalAlign="Center" Width="60px" />
                </asp:BoundField>


GridView中用了一个按钮,为什么上面那样可以,这个就不行
C# code
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("zh_Staff_1.Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>


------解决方案--------------------
zh_Staff.Staff_name
zh_Staff_1.Staff_name 这两个就不一样啊
可以看看你的sql语句吗?
------解决方案--------------------
哦,那你这个zh_Staff_1是什么来的?
不可以<%# Eval("Staff_name") %>这样吗?
就我所知Eval("字段名"),中间填的是字段名啊。我一直都是这样用的,没有试过 "zh_Staff_1.Staff_name"这样的用法
------解决方案--------------------
那得看看你的Sql语句了啊!
确认数据字段没有错啊?

------解决方案--------------------
Eval("zh_Staff_1.Staff_name") 
这个东西不是这样写吧?
------解决方案--------------------
'<%# Eval("Number").ToString() %>'
看看这样行不!
------解决方案--------------------
C# code

<asp:BoundField DataField="[color=#FF0000]zh_Staff.Staff_name[/color]" HeaderText="制单人">
                    <ItemStyle HorizontalAlign="Center" Width="60px" />
                    <HeaderStyle HorizontalAlign="Center" Width="60px" />
                </asp:BoundField>

------解决方案--------------------
C# code

<asp:BoundField DataField="Staff_name" HeaderText="制单人">

------解决方案--------------------
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Staff_name") %>' CommandArgument='<%# Eval("Supplier") %>' OnClick="LinkButton1_Click"></asp:LinkButton>

直接这样写不可以吗?
------解决方案--------------------
既然是同一个Staff_name,又何必写两次,如果要写两次,应该给zh_Staff_1.Staff_name一个别名 as Staff_name1 啊
变通的方法有很多,又何必执拗于代码上呢。本身你这样写SQL语句就有问题,搜索出来的表里本来就不应该有同名的字段
------解决方案--------------------
<asp:BoundField DataField="zh_Staff.Staff_name" HeaderText="制单人">
<ItemStyle HorizontalAlign="Center" Width="60px" />
<HeaderStyle HorizontalAlign="Center" Width="60px" />
</asp:BoundField>
这里用zh_Staff.Staff_name ,会被作为DataTable的字段名


Eval("zh_Staff_1.Staff_name") 
这里的zh_Staff_1.Staff_name 不是被当作 DataRowView["zh_Staff_1.Staff_name "]来使用
而是被当作DataRowView.zh_Staff_1.Staff_name 来使用了,所以出错了