C# 部分用户控制
在Asp.net Web窗体中,为什么用户控件必须是局部的?我试图删除partial关键字,它显示: 上缺少部分修饰符 型式“试验”的声明;另一个 此类型的部分声明 存在 另一份声明在哪里 我正在尝试通过用户控件传递泛型类型,我如何才能做到这一点?我不能,除非我也改变另一个声明。我找不到它,所以我删除了partial关键字 注: 你有3个文件,如果你制作网站应用程序,但如果你制作网站,你只有2个文件C# 部分用户控制,c#,asp.net,user-controls,webforms,partial-classes,C#,Asp.net,User Controls,Webforms,Partial Classes,在Asp.net Web窗体中,为什么用户控件必须是局部的?我试图删除partial关键字,它显示: 上缺少部分修饰符 型式“试验”的声明;另一个 此类型的部分声明 存在 另一份声明在哪里 我正在尝试通过用户控件传递泛型类型,我如何才能做到这一点?我不能,除非我也改变另一个声明。我找不到它,所以我删除了partial关键字 注: 你有3个文件,如果你制作网站应用程序,但如果你制作网站,你只有2个文件 UserControl.ascx UserControl.ascx.cs 那么在网站上,其他
UserControl.ascx
UserControl.ascx.cs
那么在网站上,其他声明在哪里
我想要通用的原因是因为我制作了一个网格用户控件,所以我想传递数据源将具有的类型。每个用户控件实际上有三个文件
UserControl.ascx
UserControl.cs
UserControl.designer.cs
设计器文件有一个
partial
实现,因为您的代码隐藏也必须是partial
它们必须是partial的,因为设计器会自动生成您在设计窗口中执行的操作。通常,该代码位于foo.designer.cs
(或asp.net表单的任何扩展名)中。如果要更改类,必须在没有设计器的情况下手动生成UI,或者使用设计器并将代码复制到适当的类中。它们不必是分部类,事实上,我从未使用分部类。一些代码生成工具将使用partial,这样它们就可以更容易地根据GUI工作更改位,而不需要您,并且它会相互妨碍,但是这是为了工具而不是为了代码。ASP.NET对codehind使用分部类,因为它必须将您在ASPX文件中声明的所有服务器端控件生成一个类,并合并代码绑定附带的所有其他数据文件。它允许ASP.NET使用的类分布在多个文件中
发件人:
代码文件包含一个部分
类,即类声明
使用关键字partial(在中为partial)
(Visual Basic)表示
只包含全部代码的一部分
这就构成了本学期的全部课程
页在分部类中,添加
应用程序所使用的代码
需要为该页添加
这是关键部分:
编译页面时,ASP.NET
基于
.aspx文件;这门课是部分的
类文件的代码隐藏类。
生成的部分类文件
包含页的
控制。此分部类启用
您的代码隐藏文件将用作
一个完整类的一部分,没有
要求您声明控件
明确地说
通过向用户控件添加泛型类型,您试图做什么?您可以通过向UserControl添加
类型属性并使用该属性来实现这一点吗?请详细解释为什么必须使用泛型?它必须是部分设计师。Designer放置runat=“server”组件声明,这些声明在控制事件句柄中被视为私有成员。实际上是的,如果制作Web应用程序,您确实有3个文件,但如果制作网站,您只会得到2个文件!UserControl.ascx UserControl.ascx.cs那么在网站中,另一个声明在哪里?它被编译到bin
目录下的.dll
文件中。@zeus请参见下面我的答案,当编译页面时,ASP.NET会根据.aspx文件生成一个分部类代码>我将只创建一个类型属性,它似乎不会作为泛型发生,尽管它应该这样做。谢谢Kelsey。你能通过声明嵌套在UserControl
类中的泛型类型来实现你想要的吗?