ReadOnly =“<%#Bind(”ServerProp“)%>”语法错误

时间:2011-12-01 09:06:32

标签: asp.net

我正在尝试将bool从服务器绑定到标记:

<asp:BoundField DataField="RevSharePercent" HeaderText="Revenue Share Percentage"
  SortExpression="RevSharePrecentage" ReadOnly="<%=SetFieldsReadOnly%>" />

但渲染显示以下错误:

Parser Error Message: Literal content ('<asp:BoundField
DataField="RevSharePercent" HeaderText="Revenue Share Percentage"
SortExpression="RevSharePrecentage" ReadOnly="') is not allowed within a
'System.Web.UI.WebControls.DataControlFieldCollection'.

Source Error: 
Line 59:<AlternatingRowStyle BackColor="#E8E8E8" /> 
Line 60:    <Fields> 
Line 61:      <asp:BoundField DataField="RevSharePercent" HeaderText="Revenue Share Percentage" 
Line 62:        SortExpression="RevSharePrecentage" ReadOnly="<%# Bind("SetFieldsReadOnly") %>" /> 
Line 63:      <asp:BoundField DataField="ScreeningPercent" HeaderText="Screening Percentage" 
                SortExpression="ScreeningPercent" ReadOnly="<%# Bind("SetFieldsReadOnly") %>" />

更新 尝试“&lt;%#Bind(”SetFieldsReadOnly“)%&gt;” 和ReadOnly =“&lt;%#Eval(”SetFieldsReadOnly“)%&gt;” /&GT; 两者都不起作用

  

分析程序错误消息:文字内容('      

来源错误:

     

第59行:第60行:行   61:   的SortExpression = “RevSharePrecentage”   ReadOnly =“&lt;%#Bind(”SetFieldsReadOnly“)%&gt;” /&GT;第63行:
  “/&gt;

2 个答案:

答案 0 :(得分:3)

我想你需要尝试:

'<%# Bind("SetFieldsReadOnly") %>'

'<%# Eval("SetFieldsReadOnly") %>'

而不是

<%=SetFieldsReadOnly%>

注意Bind / Eval。

刚刚在其他网站上找到了有关语法的信息

在ASP.NET 1.1中,数据绑定标记为:

<%# DataBinder.Eval(Container.DataItem, ''expression'' ) %>
<%# DataBinder.Eval( '', '', ''format string'') %>

ASP.NET 2.0提供以下内容:

<%# Eval(''expression'') %>
<%# Eval(''expression'', ''format string'') %>
<%# Bind(''expression'') %>
<%# Bind(''expression'', ''format string'') %>

答案 1 :(得分:0)

双引号是罪魁祸首。 aspx解析器认为ReadOnly=“<%# Bind("是属性声明和值,并与其余字符串混淆。它在属性值之后需要space。将其更改为ReadOnly='<%# Bind("ServerProp") %>'