gridview控件中的错误

时间:2014-03-23 08:42:22

标签: c# asp.net gridview

我有一个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>

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 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。 :)