asp.net动态文本语法:“<%#[Code here]%>'”是什么?

时间:2014-02-25 22:37:17

标签: c# asp.net tsql telerik

我是.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

1 个答案:

答案 0 :(得分:2)

<% %>标记是ASP.NET中的代码标记。它们允许您在标记页面中运行C#(或VB.NET)代码。

当存在#时,表示它是绑定表达式。在执行数据绑定的控件(例如您引用的RadGrid)中,<%# %>标记(以及Eval方法)允许您将当前行中的数据绑定到控件中网格。

因此,在您的示例中,对于您正在绑定的数据集合中的每一行,lbl2标签的文本都设置为RoleCode列的值。