与普通服务器控件一样,用户控件也可以以编程方式创建。通过传入用户控件源文件的虚拟路径,可使用页的 LoadControl 方法加载用户控件:
Control c1 = LoadControl("userControl.ascx");
((UserControl)c1).Category = "business";
Page.Controls.Add(c1);
注释:CateGory是userControl.ascx的属性。
由于 LoadControl 方法返回 System.Web.UI.Control 类型,因此必须将其转换为适当的强类型以便设置控件的各个属性。最后,用户控件被添加到基页的 ControlCollection。
userControl.ascx代码如下:
<script language="C#" runat="server">
private String _category = "";
public String Category {
get {
return _category;
}
set {
_category = value;
SqlConnection myConnection = new SqlConnection("server=(local)//SQLExpress;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + _category + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
</script>