在声明式数据绑定中,用到如下一句代码:
<ItemTemplate>
<asp:DropDownList runat="server"
DataSourceID="GradesDataSource"
DataTextField="GradeName" DataValueField="GradeValue"
SelectedValue="<%# Eval('SsoType')%>" Enabled="false">
</asp:DropDownList>
</ItemTemplate>
出现 Too many characters in character literal 错误。
原来,在 ItemTemplate 中,使用 <%# %> 时应该将单引号写在外面,而在其它模板(比如:InsertItemTemplate、EditItemTemplate)则不存在此问题。所以我们这里还是建议统一将单引号写在外面,如下:
SelectedValue='<%# Eval("SsoType")%>'
这样,不论它处于哪个模板都是正确的。