我是.NET和Web开发的新手,并且一直致力于其他人编写的代码,但无法弄清楚这个特定语法在做什么。我有一个telerik RadGrid,它从tsql数据库动态显示数据,并使用GridTemplateColumn ItemTemplate显示一个asp:Label控件。该控件的Text值为Text ='<%#Eval(“RoleCode”)%>'。 “RoleCode”对应于存储过程返回的行,“Eval”是我在页面上没有使用的类,但在我的应用程序的其他地方使用(我认为)访问存储在该类中的属性。 (RoleCode是该类中的一个属性。)我的代码可以工作,但由于Eval类没有在这个页面上使用,我不明白它为什么会起作用。
这是与<%@ Page ...%>相同的代码吗?代码在我的页面顶部?
<telerik:RadGrid ID="grd1" runat="server" AllowSorting="true" OnNeedDataSource="grd1_NeedDataSource"
<MasterTableView ShowHeader="true" ShowFooter="false" CommandItemDisplay="Top" DataKeyNames="PersonID"
AllowSorting="true" EditFormSettings-EditColumn-Visible="false" EditFormSettings-ColumnNumber="2">
<Columns>
<other rows here>
<telerik:GridTemplateColumn HeaderText="Role Code" DataField="RoleCode" SortExpression="RoleCode" EditFormColumnIndex="1">
<ItemTemplate>
<asp:Label ID="lbl2" runat="server" Text='<%# Eval("RoleCode") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlRoleCode" runat="server">
<asp:ListItem>RTR</asp:ListItem>
<asp:ListItem>INT</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</telerik:GridTemplateColumn>
</Columns
答案 0 :(得分:2)
<% %>
标记是ASP.NET中的代码标记。它们允许您在标记页面中运行C#(或VB.NET)代码。
当存在#
时,表示它是绑定表达式。在执行数据绑定的控件(例如您引用的RadGrid
)中,<%# %>
标记(以及Eval
方法)允许您将当前行中的数据绑定到控件中网格。
因此,在您的示例中,对于您正在绑定的数据集合中的每一行,lbl2
标签的文本都设置为RoleCode
列的值。