是否有可能在设计时将gridview与多个表数据绑定

问题描述:

如何在设计模式下将多个表数据绑定到网格视图。是否有可能在设计时将gridview与多个表数据绑定

这是我设计的

<asp:GridView ID="grdACH" runat="server" AutoGenerateColumns="False" BackColor="White" 
      BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" 
      GridLines="Vertical" Style="left: 121px; position: absolute; top: 133px"> 
      <Columns> 
       <asp:TemplateField> 
        <HeaderTemplate> 
         <asp:CheckBox ID="CheckAll" runat="server" onclick="return check_uncheck (this);" /> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <asp:Label ID="ID" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "FedTaxID") %>' 
          Visible="false"></asp:Label> 
         <asp:CheckBox ID="checkRec" runat="server" onclick="return check_uncheck (this);" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="FedTaxID" SortExpression="FedTaxID"> 
        <EditItemTemplate> 
         <asp:Label ID="lblFedTaxID" runat="server" Text='<%# Eval("FedTaxID") %>'></asp:Label> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="lblFedTaxID1" runat="server" Text='<%# Bind("FedTaxID") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="CompanyName" HeaderText="CompanyName"></asp:BoundField> 
       <asp:BoundField DataField="EntryDescription" HeaderText="CompanyEntryDescription"></asp:BoundField> 
       <asp:BoundField DataField="BankRoutingNumber" HeaderText="RoutingNumber"></asp:BoundField> 
       <asp:BoundField DataField="Amount" HeaderText="Amount"></asp:BoundField> 

这是从另一个表

<asp:TemplateField HeaderText="TaxAuthority" SortExpression="Taxing_Auth_Name"> 
        <EditItemTemplate> 
         <asp:Label ID="lblTaxAuthority" runat="server" Text='<%# Eval("Taxing_Auth_Name") %>'></asp:Label> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="lblTaxAuthority" runat="server" Text='<%# Bind("Taxing_Auth_Name") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 


      </Columns> 
      <RowStyle BackColor="#F7F7DE" /> 
      <FooterStyle BackColor="#CCCC99" /> 
      <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" /> 
      <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" /> 
      <AlternatingRowStyle BackColor="White" /> 
     </asp:GridView> 

但我得到一个错误的DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Taxing_Auth_Name'.

所以任何一个可以告诉什么做

我的存储过程,对于结合

select c.fedtaxid,companyname,'comapany desc',c.entrydescription, 
    c.BankRoutingNumber, 
    g.Amount,g.TaxAuthority from tblcustomer c join (
    select swc.fedtaxid As FedTaxID,sum(amount) Amount, taxing_auth_name TaxAuthority from tbl_employees_swc_grosswagedetails swc where wage_code='GRTT' and taxing_auth_name='FED' and (empid,payperiodnumber,payyear) in (select distinct empid,PayPeriodID,payyear from tblcpyresults cpyr where cpyr.fedtaxid=swc.fedtaxid) group by swc.fedtaxid) g on c.fedtaxid=g.fedtaxid; 
+0

取而代之的是这些。最好在aspx页面中一次性添加网格中的所有列,然后在后面的代码中将另一个表中的额外列附加到您提供给数据网格的数据集中。 – 2011-04-28 13:09:53

+2

@Kalyan:通过代码我写了这个,但我想知道它是否可能 – Dotnet 2011-04-28 13:11:31

+1

这可能是由于您从代码调用的列不匹配,您可以发布你已经写入绑定的代码gridview – Vivekh 2011-04-28 13:17:41

在你的存储过程执行你写了这

taxing_auth_name TaxAuthority 

所以定义与TaxAuthority您的标签,这将解决这个问题..

像如下

<asp:TemplateField HeaderText="TaxAuthority" SortExpression="TaxAuthority"> 
       <EditItemTemplate> 
        <asp:Label ID="lblTaxAuthority" runat="server" Text='<%# Eval("TaxAuthority") %>'></asp:Label> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="lblTaxAuthority" runat="server" Text='<%# Bind("TaxAuthority") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
+0

感谢您的指点 – Dotnet 2011-04-28 13:25:29