在Asp.net Web表单中,为什么用户控件必须是部分的?我试图删除partial关键字,然后说:
缺少部分修饰符 “测试”类型的声明;另一个 这种类型的部分声明 存在
另一份声明在哪里?
我试图通过用户控件传递泛型类型,我该怎么做?除非我改变其他声明,否则我不能。我找不到它所以我删除了部分关键字。
注意: 如果您正在制作WebApplication,那么您有3个文件,但如果您的制作网站只获得2个文件!
UserControl.ascx
UserControl.ascx.cs
所以在网站上哪个是另一个声明?
我想要泛型的原因是因为我正在制作网格用户控件,所以我想传递数据源将具有的类型。
答案 0 :(得分:1)
每个用户控件实际上有三个文件。
UserControl.ascx
UserControl.cs
UserControl.designer.cs
设计器文件有一个partial
实现,因为你的代码背后也必须是partial
。
答案 1 :(得分:1)
它们必须是部分的,因为设计器会自动生成您在“设计”窗口中执行的操作。通常该代码位于foo.designer.cs
(或者asp.net表单的任何扩展名)。如果要更改类,则必须在没有设计人员的情况下手动生成UI,或者使用设计器并将代码复制到适当的类。
答案 2 :(得分:1)
ASP.NET为代码隐藏使用部分类,因为它必须生成您在ASPX文件中声明的所有服务器端控件,并合并代码绑定的所有其他数据文件。它允许ASP.NET使用的类分布在多个文件中。
来自MSDN:
代码文件包含部分内容 class - 即类声明 关键字partial(Partial in。) Visual Basic)表明它 仅包含部分总代码 这构成了全班 页。在部分类中,您添加 您的应用程序的代码 需要页面。
这是关键部分:
编译页面时,ASP.NET 生成基于的部分类 .aspx文件;这个班是偏袒的 代码隐藏类文件的类。 生成的部分类文件 包含页面的声明 控制。这个部分类启用 你的代码隐藏文件用作 没有完整课程的一部分 要求您声明控件 明确。
通过向用户控件添加泛型类型,您想要做什么?你能通过向UserControl添加Type
属性然后使用它来完成这个吗?
答案 3 :(得分:0)
他们不必是偏袒的,事实上我从来没有使用过部分类。一些代码生成工具将使用partial,以便他们可以更容易地根据您在没有您的情况下执行的GUI工作来改变位,并且它可以相互替代,但这是针对工具而不是代码。