如何使用字符串可以转换UserControl
有没有什么方法/可能性我可以用UserControl替换字符串?
除了LoadControl并将其添加到另一个控件,如页面或占位符。
原因是用户在页面上添加内容并输入类似{uc:test}的字符串,我想解析此文本并用UserControl替换{uc:test}。
换一种说法 ; 用户输入将是“bla bla bla {uc:test} bla bla”,当我从数据库中检索它时如何注入usercontrol并将其替换为{uc:test}
谢谢。
尝试使用LoadControl方法动态加载用户控件,并在回发期间将它们添加到页面中。
Control someControl = LoadControl("~/SomeControl.ascx");
你可以……将它添加到你的页面的控件集合中:
this.Page.Controls.Add(someControl);
或者……将其添加到另一个控件的控件集合中
someExistingPlaceHolder.Controls.Add(someControl);
如何使用正则表达式获取这样的标签
List fields = new List (); foreach(Match match in Regex.Matches(str, @"\{([^\}]*)\}")) { fields.Add(match.Groups[1].Value); }
如果您希望遵守所有用户输入,包括它们包含的任何控件引用,请使用ParseControl :
string markup = input.Replace("{","<").Replace("}",">"); Control control = this.Page.ParseControl(markup); this.Page.Controls.Add(control);
这将创建一个新的Control
,它将所有文本(“blah blah”)表示为Literal子控件,并创建
新实例作为嵌套子控件。
- 重写url。 asp.net c#
- 处理SkyBiometry API
- 为什么我在DropDownList中获得“System.Web.Mvc.SelectListItem”?
- 路径数据到树状数据结构
- 在ASP.NET 2.0中使用Login控件时,将值从一个页面传递到另一个页面
- 从来自NSUrlRequest的httpcontext获取变量
- C#数据库插入(ASP.NET) – ExecuteNonQuery:CommandText属性尚未初始化
- 如何解决错误:该类型似乎没有实现microsoft.practices.servicelocation.iservicelocator?
- 如何识别Page_Load中的回发事件