1

2 つのテーブルがリンクされています。母テーブルのバージョンと子テーブルのファイル。Versions には、Files の ID 列とリンクする fileID という列があります。ファイルには、取得したい列である Url という列があります。問題は、「DataNavigateUrlFields="File.Url" を実行すると、システムが見つからないエラーをドロップすることです。コード ビハインドで Version.File.Url を問題なく使用できます。

どうすればいいですか?

それはコードです(迷惑なコードを消去しました):

<asp:GridView ID="GridView1" runat="server" >
    <Columns>
      <asp:HyperLinkField DataNavigateUrlFields="File.Url" 
       DataNavigateUrlFormatString="download.aspx?id={0}" HeaderText="Descargar" 
       Text="Documento" />
    </Columns>

</asp:GridView>

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="QDoc.Class.LinqToSql.QDocDataContext" TableName="Versions" 
    Where="DocId == @DocId">
    <WhereParameters>
        <asp:QueryStringParameter DefaultValue="0" Name="DocId" QueryStringField="id" 
            Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>
4

1 に答える 1

1

プロパティでラップFile.Urlします。Versionクラスが生成され、宣言されていると推測しますpartialVersionしたがって、次のように内部でプロパティを定義できます。

partial class Version
{
   public string FileUrl
   {
      return File.Url;
   }
}

そして、これを次のように使用できます。

<asp:HyperLinkField DataNavigateUrlFields="FileUrl" 
       DataNavigateUrlFormatString="download.aspx?id={0}" HeaderText="Descargar" 
       Text="Documento" />
于 2012-04-10T09:30:40.533 に答える