我有一个自定义gridview实现,它扩展了ASP.Net Gridview以在我的应用程序中执行一些特定的逻辑。
我已将必要的控制寄存器添加到web.config文件中,并将控件添加到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为usercontrol自动生成的.designer.cs文件时,它会声明其中的CheckBox元素。当我使用ASP.Net的gridview而不是我的自定义gridview时,这不会发生。
应用程序编译并运行正常。但我对不必要的实地宣言感到恼火。即使我手动删除该字段,它也会在ASCX文件中进行任何更改后立即显示。
我在自定义gridview实现中缺少属性或其他内容吗?
答案 0 :(得分:0)
很遗憾没人能给我一个解决这个问题的方法。但经过一段时间的嘲笑2天后,发现了问题。正是这个属性,我添加到CustomGridView类。
ParseChildren(true,DefaultProperty = "Columns")
但不知道,为什么删除它解决了这个问题。