1

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

视图状态完美运行,但是当我尝试使用其公共即时方法获取自定义控件上的控件值时,它给我带来了一个异常,即没有具有该 ID 的控件。

4

2 回答 2

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;
于 2012-10-15T09:25:35.173 回答
0

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

要获取自定义控件的各个元素的属性值,您应该在自定义控件中定义属性,这反过来将各个控件包装在自定义控件中。

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

于 2012-10-15T09:07:57.550 回答