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());
    }
}

しかし、私が言ったように、コードは正常に動作しますが、DB テーブルのすべてのレコードが表示されます。私が持っている別の関数から返されたサブコントラクトのみを表示したい:

 LoadSubContractors();

どうすればいいですか?お知らせ下さい?ありがとう

4

1 に答える 1

1

LoadSubContractors()関数の戻り値がaListまたはaのようなものであるDataSet場合は、コードビハインドでデータソースを設定してから、データを手動でバインドできます。

myGridView.DataSource = LoadSubContractors();
myGridView.DataBind()
于 2013-02-21T12:31:40.497 に答える