我有一个Gridview,列的定义如下。
当我运行程序时,我收到错误
System.Web.UI.WebControls.DataControlFieldCollection
中不允许使用文字内容
<Columns>
<asp:CommandField ButtonType="Image"
ControlStyle-Height="20"
ControlStyle-Width="30"
SelectImageUrl="tar.png"
SelectText="Select"
ShowSelectButton="true"/>
<asp:TemplateField HeaderText="Target Date">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("tar_date") %>'>
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl1" runat="server"
Text='<%# Bind("tar_date") %>'>
</asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
</Columns>
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
您的标记似乎没有错。
我唯一建议的是立即结束Label控件并再次尝试。
<asp:Label ID="lbl1" runat="server" Text='<%# Bind("tar_date") %>' />
// OR
<asp:Label ID="lbl1" runat="server" Text='<%# Bind("tar_date") %>'></asp:Label>
过去我曾经看到Tab,或者某些模板化控件之间出现一些无意字符的问题。通过从头开始重做每一行来检查你是否有这样的字符。
答案 1 :(得分:0)
这个问题有点旧,但对于遇到此问题的其他人: 此问题可能是由于不在属性之间放置空格。例如:
<asp:TextBox ID="TextBox1" runat="server"Text='<%# Bind("tar_date") %>'> </asp:TextBox> //wrong (no space before Text)
答案 2 :(得分:0)
这是一个令人沮丧的错误。我在此上浪费了大约4个小时,而我在Google上找不到几乎可以帮助我解决问题的资源。我正在更新旧版应用程序,因此TextInputCustom
的复杂性有点朦胧,因为我有一段时间没有从头开始创建一个了。
最后,此修复程序是Raja建议重写控件的结果。 Visual Studio并未突出显示一个非常重要的问题,并且错误消息的模棱两可的性质使我看到了错误的网格列。尽管错误指出了GridView
的问题,但对我来说实际上是TemplateField
中的问题。
在从Telerik RadGrid转换为GridView的过程中,BoundField
控件内部嵌套有一个孤立的BoundField
标签,但是<ItemStyle>
控件不允许这样做。
从视觉上讲,除非您最近对GridView熟悉,否则您不会知道甚至不怀疑。您无法通过调试碰到它。 Visual Studio和编译器也未报告此情况。因此,对它进行故障排除是一头野兽。
起作用的是逐行重写网格。谢谢,拉贾!
Visual Studio中的自动完成功能不允许我关闭BoundField
控件以添加任何其他任何类型的标记/控件。这是我终于意识到问题所在的时间。
我希望这可以帮助另一个不幸的Googler。 :)