在Visual Studio中使用用户控件的设计师.cs存在问题。

12 浏览
0 Comments

在Visual Studio中使用用户控件的设计师.cs存在问题。

在我的开发过程中,我有一个Web用户控件项目和另一个将使用Web用户控件项目中的用户控件的Web项目。

所以我将DocControl.ascx文件复制到我的Web项目中,并尝试使用DocControl.ascx的属性。

但是VS不知道控件的属性。所以当我检查designer.cs时,引用是这样的

protected global::System.Web.UI.UserControl Control;

应该是

protected global::MSN.DocControl Control;

所以我将控件的名称从System.Web.UI.UserControl改为MSN.DocControl,然后我可以使用DocControl.ascx的属性。

但是我的问题是,每当我修改(例如在aspx中放置一个标签)aspx文件时,designer.cs中的引用会变成

protected global::System.Web.UI.UserControl Control;

所以我必须在修改aspx时进行更改。

我应该怎么做才能不需要更改designer.cs?

提前感谢您的帮助......

0
0 Comments

在我的案例中,问题出在我注册行的src路径错误。这导致没有错误信息,但是会生成通用控件而不是具体的类,出现了你描述的相同症状。

我有以下代码(src路径错误):

<%@ Register TagPrefix="uc" TagName="Pipes" Src="/Controls/Pipes.ascx" %>

...

<uc:Pipes id="ucPipes" runat="server" />

它生成了以下通用控件,没有控件的属性:

protected global::System.Web.UI.UserControl ucPipes;


当我使用正确的路径,包含Category文件夹时,它工作了:

<%@ Register TagPrefix="uc" TagName="Pipes" Src="/Category/Controls/Pipes.ascx" %>

...

<uc:Pipes id="ucPipes" runat="server" />

它生成了以下正确的控件,所有属性都有效:

protected global::Company.Category.Controls.Pipes ucPipes;

还可以参考这个回答,查看代码后台名称错误的情况:stackoverflow.com/a/7001793/292060

0
0 Comments

问题的出现原因:设计师.cs文件中的保护全局变量global::MSN.DocControl Control未正确设置,导致使用用户控件时出现问题。

解决方法:将保护全局变量global::MSN.DocControl Control从设计师.cs文件移动到.cs页面中。这样,无论进行何种更改,都能正常工作。

以下是整理后的文章:

在使用Visual Studio中的用户控件时,设计师.cs文件中可能会出现问题。问题出在设计师.cs文件中的保护全局变量global::MSN.DocControl Control未正确设置。为了解决这个问题,我们可以将保护全局变量global::MSN.DocControl Control从设计师.cs文件移动到.cs页面中。这样一来,无论进行何种更改,都能保证用户控件的正常工作。希望这些解决方法能帮到你。

0