自定义GridView与TemplateField和UserControl

本文关键字:UserControl TemplateField GridView 自定义 | 更新日期: 2023-09-27 17:54:32

我有一个自定义的gridview实现,它扩展了ASP。在我的应用程序中做一些额外的逻辑。

我已经添加了必要的控制寄存器web。并将控件添加到UserControl中,如下所示。

<%@ Register TagPrefix="uc1" Namespace="MyApp.CustomControls" %>
<uc1:CustomGridView ID="userlist" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="ckbIsDefault" runat="server"/>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="UserName" SortExpression="UserName" />
        <asp:BoundField DataField="FullName" SortExpression="FullName" />
    </Columns>
</uc1:CustomGridView>

当我查看由Visual Studio为用户控件自动生成的。designer.cs文件时,它有CheckBox元素的声明。当我使用ASP时,这种情况不会发生。Net的gridview,而不是我的自定义gridview。

应用程序编译并运行良好。但我只是对不必要的字段声明感到恼火。即使我手动删除该字段,只要我对ASCX文件进行任何更改,它就会继续出现。

我错过了一个属性或在我的自定义gridview实现的东西?

自定义GridView与TemplateField和UserControl

很遗憾没有人能给我一个解决这个问题的办法。但经过2天的嘲讽,我发现了问题所在。我将这个属性添加到CustomGridView类中。

ParseChildren(true,DefaultProperty = "Columns")

但是我不知道,为什么去掉这个就解决了问题。