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>
有谁能帮我解决这个问题吗?

gridview控件中出现错误

您的标记似乎没有问题。

我唯一建议的是立即结束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控件来添加任何类型的其他标签/控件。这时我终于意识到问题出在哪里。

我希望这能帮助另一个不幸的谷歌人。:)