gpt4 book ai didi

c# - 使用参数动态加载用户控件

转载 作者:可可西里 更新时间:2023-11-01 09:04:34 26 4
gpt4 key购买 nike

我已经创建了一个用户控件。

public partial class Controls_pageGeneral : System.Web.UI.UserControl
{

private int pageId;
private int itemIndex;

public int PageId
{
get { return pageId; }
set { pageId = value; }
}

public int ItemIndex
{
get { return itemIndex; }
set { itemIndex = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
// something very cool happens here, according to the values of pageId and itemIndex
}

}

现在我想动态创建这个控件并向它传递参数。我试过使用 LoadControl 函数,但它只有两个构造函数:一个带有字符串(路径),另一个带有类型 t 和参数数组。

第一种方法可行,但由于我的参数,不得不使用更复杂的LoadControl方法,但我不知道如何使用它。我怎样才能将我的控件的路径字符串转换为那个奇怪的对象类型 t?

最佳答案

在你的情况下它是不相关的,因为第二种方法接受传递给适当构造函数的参数,但你根本没有构造函数来控制。

只需使用.ascx 文件的路径加载控件,转换为正确的类型并一一设置属性:

Controls_pageGeneral myControl = (Controls_pageGeneral)Page.LoadControl("path here");
myControl.PageId = 1;
myControl.ItemIndex = 2;

如果你坚持使用构造函数,首先添加这样的:

public Controls_pageGeneral(int pageId, int itemIndex)
{
//code here..
}

然后:

Page.LoadControl(typeof(Controls_pageGeneral), new object[] {1, 2});

将执行与上述相同的操作,因为运行时代码将查找接受两个整数的构造函数并使用它。

关于c# - 使用参数动态加载用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com