在cs文件中加载Web用户控件

时间:2011-09-15 11:09:44

标签: asp.net

我使用ASP.NET创建了一个Web项目。我得到了几个WUC和.aspx网页 现在我想创建一个“utility.cs”文件,以避免重写始终相同的代码,但我将进入utility.cs的一种方法使用WUC组件。那么如何将WUC“加载”到.cs文件中呢?

综上所述:

utility.cs:

public static class utility
{
    public void pLoadDDL(DropDownList ddl, string query, string idField, string descField){...}

    public void pLoadCheckableDropDownList(MultiSelectDropDown msdd, string queryPopola,string queryVista, string strIdField, string strDataField){...}
}

Multi SelectDropDown是一个WUC。如果我已将此代码添加到网页(.aspx)中,我将能够添加如下指令:

<%@ Register TagPrefix="ddms" TagName="MultiSelectDropDown" src="WUC/MultiSelectDropDown.ascx" %>

我无法添加到简单的.cs文件中。而且我不想将我的代码移动到aspx文件,因为它只复制了一个来自女巫代码的文件......它不是一个网页。

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

假设WUC是Web用户控件,请查看Page.LoadControl()。

你需要这样的东西:

MultiSelectDropDown dropDown = (MultiSelectDropDown) Page.Load("WUC/MultiSelectDropDown.ascx");

从那里你可以将dropDown传递给你的效用方法。

答案 1 :(得分:0)

Alberto错误是什么?

您的代码是否未编译?只需输入包含命名空间的using或完全限定名称,而不仅仅是MultiSelectDropDown

总的来说,我对此的回答是,如果您正在使实用程序类有用并且被所有控件使用,则不应将其与您编写的特定Web用户控件相结合,否则您将/可能最终获得循环引用。

如果这是一个实用工具类,并且你的所有WUC最终都会使用它,那就保持它的通用性,并在MultiSelectDropDown本身内放置处理MultiSelectDropDown等自定义控件的方法,最终作为公共方法可以从所有页面或其他类别调用。

答案 2 :(得分:0)

Here是MSDN文章如何从代码隐藏动态加载用户控件

答案 3 :(得分:0)

  

以下是MSDN文章如何从代码中动态加载用户控件   后面

     

http://msdn.microsoft.com/en-us/library/c0az2h86.aspx

@StefanE:也许你没有仔细阅读我的问题,或者我的英语不够好,不能很好地解释我的问题。我写道:

“Multi SelectDropDown是一个WUC。如果我已将此代码添加到网页(.aspx)中,我可以添加这样的指令

<%@ Register TagPrefix="ddms" TagName="MultiSelectDropDown" src="WUC/MultiSelectDropDown.ascx" %>

我无法添加到简单的.cs文件。“

正如您在文章中看到的那样,“ASP.Spinner”被定义为变量定义WUC的同一个aspx页面。程序员可以编写如下内容:

ASP.Spinner myvariable =(ASP.Spinner)Page.LoadControl(“完整的wuc路径和名称”);

但是如果“ASP.Spinner”没有在WUC的相同上下文中定义(即在我的情况下,我必须写几个方法来填充/清除/等等WUC到纯.cs文件) ..........你不能。

容易;)