2013-02-21 56 views
0

因此ATM我的代码工作正常。我使用SqlDataSource链接到网格数据源并显示一个表。它显示表格中的一列,并用作超链接来导航到不同的页面。将方法链接到数据源

<asp:BoundField DataField="Company Name" HeaderText="Company Name" SortExpression="false" /> 

    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:HyperLink ID="LoadSubContractorDetails" runat="server" Text="Show Details"/> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
    <EmptyDataTemplate> 
      There are currently no items in this table. 
    </EmptyDataTemplate> 

</asp:GridView> 
<asp:SqlDataSource ID="GridDataSource1" runat="server" 
     ConnectionString="<%$ConnectionStrings:ClarkesTest4FromMaster1ConnectionString %>" 
    SelectCommand="SELECT id, [Company Name] FROM [Sub Contractor] ORDER BY [Company Name]" > 
</asp:SqlDataSource> 

protected void passSubContractorInfoToNewPage(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DataRowView view = (DataRowView)e.Row.DataItem; 
     HyperLink LoadSubContractorDetails = (HyperLink)e.Row.FindControl("LoadSubContractorDetails"); 
     LoadSubContractorDetails.NavigateUrl = ResolveUrl(@"~/SubContractDetails.aspx?id=" + view["id"].ToString() + "&InvoiceId=" + this.CurrentInvoiceId.ToString()); 
    } 
} 

但是正如我所说的代码工作正常,但它显示在数据库表中的所有记录,我只想要显示我有这从另一个函数返回的subcontractos:

LoadSubContractors(); 

我该怎么做? 请指教? 感谢

+0

认为你需要一个WHERE子句在你的SQL查询? – codingbiz 2013-02-21 12:07:35

回答

1

如果您LoadSubContractors()函数的返回类型是像一个List或者你可以简单地在代码中设置数据源的后面,然后手动将数据绑定DataSet

myGridView.DataSource = LoadSubContractors(); 
myGridView.DataBind() 
+0

谢谢肖恩男士 – John 2013-02-21 12:33:32

+0

完全没问题=] – Sean 2013-02-21 12:39:54