gridview控件中出现错误
本文关键字:错误 控件 gridview | 更新日期: 2023-09-27 17:52:45
我有一个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>
有谁能帮我解决这个问题吗?
您的标记似乎没有问题。
我唯一建议的是立即结束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, 或者一些无意的字符出现在一些模板控件之间。通过从头开始重做每一行来检查是否有这样的字符。
这个问题有点老了,但是对于其他遇到这个问题的人:这个问题可能是由于属性之间没有留白造成的。例如:
<asp:TextBox ID="TextBox1" runat="server"Text='<%# Bind("tar_date") %>'> </asp:TextBox> //wrong (no space before Text)
这是一个令人沮丧的错误。我在这个问题上浪费了大约4个小时,而且我在谷歌上能找到的帮助我解决这个问题的资源少得惊人。我当时正在更新一个遗留应用程序,所以GridView
的复杂性有点模糊,因为我已经有一段时间没有从头开始创建了。
最后,修复是Raja建议重写控件的结果。Visual Studio没有突出显示一个非常重要的问题,错误信息的模糊性使我看到了错误的网格列。尽管错误指向了TemplateField
的问题,但我的问题实际上是在BoundField
中。
在从Telerik RadGrid到GridView的转换过程中,BoundField
控件有一个孤儿<ItemStyle>
标签嵌套在里面,但BoundField
控件不允许这样做。
视觉上,你不会知道甚至怀疑这一点,除非你最近熟悉GridView。调试时不会碰到它。Visual Studio和编译器也没有报告这个问题。所以排除故障是件麻烦事。
起作用的是逐行重写网格。谢谢,拉贾!
Visual Studio中的自动完成功能不允许我关闭BoundField
控件来添加任何类型的其他标签/控件。这时我终于意识到问题出在哪里。
我希望这能帮助另一个不幸的谷歌人。:)