我正在尝试在gridview中显示一个自定义列,它根据我数据库中的几个布尔字段显示内容类型。一切都运行正常,但它导致了我现在这样做的大量开销......就像这样:
<ItemTemplate>
<asp:Label ID="lblType" runat="server" Text='<%# GetType((int)DataBinder.Eval(Container.DataItem))%>' />
</ItemTemplate>
这将调用一个函数GetType,它根据ArticleID查询数据库。当然,对于gridview中的每个项目都会发生这种情况。现在我想知道是否可以将当前(亚音速)集合项发送到此函数中?因为该项目已经可用,但我不知道如何将其放入我的itemtemplate中。
我当前的项目是DAL.Article,其中包含我需要的所有内容。
我希望我能说清楚一点!感谢你的时间。
亲切的问候, 标记
答案 0 :(得分:0)
亚音速生成的类是部分的,因此是可扩展的。
假设您有一个名为Person
的DAL对象。您可以创建一个新文件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);
我使用这种技术将Subsonic Collections绑定到Windows.Forms DataGridView上。 但它也适用于asp.net。