从自定义控件中获取价值

时间:2012-10-15 08:56:15

标签: asp.net custom-controls servercontrols

我编写了一个ASP.NET服务器控件。

查看状态非常有效,但是当我尝试使用其公共即时方法获取自定义控件的控件值时,它会给我一个例外,即无法控制该ID。

2 个答案:

答案 0 :(得分:1)

如果要从自定义控件中获取值,则必须在OnInit事件中注册控件。

//Register your controls
protected override void OnInit(EventArgs e) {
        var controlName = (Type)LoadControl("~/path.ascx");
        controlName.ID = "YOU_MUST_SET_AN_ID";
        placeholder.Controls.Add(controlName);
}


//get your controls (add the following in any method you like)
var controlNameCtrl = (Type)placeholder.FindControl("CONTROLID");
var propertyValue = controlNameCtrl.PropertyName;

答案 1 :(得分:0)

创建自定义控件时,该页面会将自定义控件标识为一个实体,并且您无法直接访问自定义控件中的各个控件。

要获取自定义控件的各个元素的属性值,您应该在自定义控件中定义属性,然后将个别控件包装在自定义控件中。

但是,您始终可以在用户控件本身中获取包含控件的值(不在其所在的页面中,而是在控件代码本身中)。您还可以在自定义控件中编写事件以使其进行交互。

相关问题