当用户控件的路径保存在数据库中时,如何传递参数给用户控件

本文关键字:控件 参数 给用户 何传递 数据库 用户 路径 保存 存在 | 更新日期: 2023-09-27 18:16:07

我在页面上添加一个用户控件,其路径保存在数据库中。下面的代码工作得很好。

Control uc = Page.LoadControl(widgetItem["User control"]);

在数据库中的值是:

~/layouts/Dashboard/UserControls/News/SpecificNewsCategory.ascx

现在我想传递一个值给这个usercontrol。想到使用查询字符串。我这样做了:

 Control uc = Page.LoadControl(widgetItem["User control"]+ "?ParamConfig=" + "123");

但是现在我得到了异常:

System.Web.HttpException: The file '/layouts/Dashboard/UserControls/News/SpecificNewsCategory.ascx?ParamConfig=123' does not exist.
我需要一些建议来解决这个问题。谢谢! !

当用户控件的路径保存在数据库中时,如何传递参数给用户控件

我不认为你可以传递querystring参数到用户控件-它不是一个URL你传递到LoadControl方法,它是一个(虚拟)路径。它不会创建一个单独的HTTP请求到浏览器来解释querystring参数。

如果您想要设置用户控件的属性,那么您需要将该控件强制转换为适当的Type,并像任何其他复杂对象一样设置属性。您的用户控件需要将它们公开为公共属性。