using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace WebApplication1
{
public partial class UC : System.Web.UI.UserControl
{
public string MyValue { get; set; }
protected void Page_Load(object sender, EventArgs e)
{ }
} public static class ControlDao
{
public static UC UC()
{
System.Web.UI.Page page = new System.Web.UI.Page();
UC userControl = page.LoadControl("~/UC") as UC;
return userControl;
}
} [NUnit.Framework.Test]
public class Test
{
public void NewUC()
{
//声明一个UC用户控件
var uc = ControlDao.UC();
uc.MyValue = "CSND";
//上面的代码是没有问题的,
//但是在只更改ControlDao的前提下
//有没有办法在这里写成
var uc = ControlDao.UC() { MyValue = "CSDN" }; //这种写法呢? 谢谢
}
}
}
{
[声明某个特性呢?]
public static UC UC()
{
System.Web.UI.Page page = new System.Web.UI.Page();
UC userControl = page.LoadControl("~/UC") as UC;
return userControl;
}
}
要么调用对象使用
var uc = ControlDao.UC() { MyValue = "CSDN" }; //这种写法呢? 谢谢这个不是对象属性设计器,更像是“对象初始化器”eg: var e = new Employee() { Name = "zyciis" }; 但这个功能是从编译器层面实现的,关键是“初始化” 这三个字就限定了它的使用范围。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<%
var uc = new WebApplication1.UC()
{
MyValue = "zyciis"
};
System.Web.UI.Page page = new System.Web.UI.Page();
page.Controls.Add(uc);
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.HttpContext.Current.Server.Execute(page, sw, true);
%>
<%=sw.ToString()%>
</body>
</html>那如果改成这样写的话
如何为UC指定他的页面模版文件呢?
谢谢
{
MyValue = "zyciis"
};
uc.LoadTemplate("~/UC.ascx");//以为是这样load进行,但没有效果 sw还是什么都没有
System.Web.UI.Page page = new System.Web.UI.Page();
page.Controls.Add(uc);
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.HttpContext.Current.Server.Execute(page, sw, true);