【发布时间】:2012-07-30 10:18:16
【问题描述】:
我们可以将两个部分类链接到一个 ascx 页面吗?
我浏览了一些链接,但找不到合适的解决方案。 例如,假设我有诸如
之类的文件Collection.ascx.cs 和 Collection.Search.cs
与 Collection.ascx
我有像按钮单击事件这样的事件,是否可以将它放在部分类中,因为这样做会使方法不可用。
我的意图是处理部分类中的按钮单击事件和下拉更改事件。
【问题讨论】:
我们可以将两个部分类链接到一个 ascx 页面吗?
我浏览了一些链接,但找不到合适的解决方案。 例如,假设我有诸如
之类的文件Collection.ascx.cs 和 Collection.Search.cs
与 Collection.ascx
我有像按钮单击事件这样的事件,是否可以将它放在部分类中,因为这样做会使方法不可用。
我的意图是处理部分类中的按钮单击事件和下拉更改事件。
【问题讨论】:
是的,在 WebApplication 中,它是 .aspx(网页)和 .ascx(用户控件)的默认属性。
这些默认带有两个 .cs 文件,将部分类中的代码分开(filename.aspx.designer.cs 和具有相同部分类的文件名.aspx.cs)
您还可以添加更多 .cs 文件来扩展这些分部类定义。
但在网站上,它不会工作,对于 aspx 或 ascx。
【讨论】:
是的,部分类的 C# 编译器规则不会因为它的 ASP.NET 而改变。只要确保你的命名空间和类名匹配,源文件不必是解决方案资源管理器中ascx 文件的子文件,但如果你真的想要它,你可以编辑项目文件并添加适当的依赖-on xml 段。
【讨论】:
答案位于 default.aspx 第一行:
Language="C#" CodeBehind="Default.aspx.cs" ...
将设置每个部分类工作。
相反,
Language="C#" CodeFile="Default.aspx.cs" ...
会导致部分类出错。
但是,在 vs2017 old-style-webForm 中只能使用 CodeFile,所以你必须尝试另一种方式:只需创建一个文件 ..\WebF8\App_Code\Class3.cs 内容:
public static class Class3 {
public static int gg3=33;
}
那么你就可以在default.aspx.cs中正确看到Class3.gg3了。 注意,这个 Class3.cs 文件必须在 \App_Code 文件夹中。
【讨论】: