在所选数据源 - ALIAS 上找不到名称为“PageID”的字段或属性

本文关键字:PageID 属性 字段 数据源 ALIAS 找不到 | 更新日期: 2023-09-27 18:36:46

我在网格视图中的行

<asp:Label ID="Label2" runat="server" Text='<%# new System.Text.StringBuilder("<a href='"/Administration/Pages/EditPage/?pageID=").Append(Eval("PageID")).Append("'">").Append(Eval("Name")).Append("</a>").ToString() %>'></asp:Label>

失败与

异常详细信息: System.Web.HttpException: DataBinding: "System.Data.DataRowView"不包含具有以下名称的属性 "页面ID"。

我怀疑问题是数据源中的别名

SelectCommand="SELECT Menus.ID, Menus.ParentID, Menus.Name, Menus.Slug, Menus.PageTitle, Menus.PageSubTitle, Menus.MenuOrder, Menus.IsHomePage, Menus.IsYourAccountLink, Menus.IsMiniMenu, Menus.IsFooterMenu, Menus.IsHeaderMenu, Menus.CustomerID, Customers.SubDomain, PublicPages.ID AS PageID FROM Menus INNER JOIN Customers ON Menus.CustomerID = Customers.ID INNER JOIN PublicPages ON Menus.ID = PublicPages.HeaderMenuID AND Customers.ID = PublicPages.CustomerID WHERE (Menus.CustomerID = @CustomerFilter)"

那么如何在以下情况下将其用作别名:

Append(Eval("PageID"))

在所选数据源 - ALIAS 上找不到名称为“PageID”的字段或属性

试试这个,

<%# Container.DataItem.GetColumn("PageId")%>

UPDATE1:第二种选择

<%#DataBinder.Eval(Container.DataItem.GetColumn("PageId"))%>