2012-04-10 5 views
1

У меня есть две таблицы. Версии материнского стола и файлы таблицы для детей. Версии имеет столбец с именем fileID, который ссылается на столбец идентификаторов из файлов. Файлы имеют столбец Url, который является столбцом, который я хочу получить. Поэтому проблема заключается в том, что если я делаю «DataNavigateUrlFields =« File.Url », система отказывается от найденной ошибки. Я могу использовать Version.File.Url в коде позади без проблем.Ссылка гиперссылки Datagridin в столбце дочерней таблицы

Как это сделать?

это код (я стер раздражающий код):.

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

ответ

1

Wrap 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" /> 
Смежные вопросы