1

我有两个表链接。母表版本和子表文件。Versions 有一个名为 fileID 的列,它与 Files 中的 ID 列链接。Files 有一个名为 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类已生成并因此声明partial。因此,您可以像这样在内部定义一个属性Version

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 回答