2010-08-17 1 views
0

Я пытаюсь показать пользовательский столбец в моем gridview, который отображает тип содержимого на основе нескольких логических полей в моей базе данных. Все работает нормально, но это вызывает много накладных, как я сделать это сейчас .. как это:SubSonic 2.2 и ASP.NET gridview

<ItemTemplate> 
    <asp:Label ID="lblType" runat="server" Text='<%# GetType((int)DataBinder.Eval(Container.DataItem))%>' /> 
</ItemTemplate> 

Это вызывает функцию GetType, который запрашивает базу данных на основе ArticleID. Конечно, это происходит для каждого элемента в gridview. Теперь я хотел бы узнать, можно ли вместо этого отправить текущий (дозвуковой) элемент коллекции на эту функцию? Поскольку элемент уже доступен, но я не знаю, как его поместить в свой ItemTemplate.

Мой текущий пункт - DAL. Статья содержит все, что мне нужно.

Надеюсь, я прояснил немного! Спасибо за ваше время.

С наилучшими пожеланиями, Все

ответ

0

Дозвуковые генерируются классы являются частичными и, таким образом, расширяемой. Предположим, у вас есть объект DAL, называемый Person. Вы можете создать новый файл Person.cs (в другой папке, конечно).

namespace Your.Dal.Namespace { 
    public partial class Person 
    { 
     public string DisplayName 
     { 
      get 
      { 
       return String.Format("{0}, {1}", this.LastName, this.FirstName); 
      } 
     } 
    } 
} 

Теперь вы можете получить доступ к свойству DisplayName вашего класса:

PersonCollection col = new PersonCollection().Load(); 

foreach(Person p in col) 
    Console.WriteLine(p.DisplayName); 

Я использую эту технику для связывания дозвуковых Коллекции с Windows.Forms DataGridView много. Но он должен работать и для asp.net.

+0

Идеальный друг решения даже не подумал об этом. Большое спасибо! – Mark