小弟现在在自定义控件,学到了模块这里,但是遇到了点问题
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing.Design;
using System.Web.UI.Design;
using System.ComponentModel;
namespace WebFormControl
{
[ToolboxData("<{0}:WebUserLoginControl3 runat=server UserLoginLableText=用户登陆 UserNameLableText=用户名 PassWordLableText=密码 SubmitButtonText=登陆></{0}:WebUserLoginControl3>")]
public class WebUserLoginControl3 : WebUserLoginControl2 //1、继承WebUserLoginControl2类
{
//2、创建模板属性
private ITemplate userloginlabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate UserLoginLableTemplate
{
get { return userloginlabletemplate; }
set { userloginlabletemplate = value; }
} private ITemplate usernamelabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate UserNameLableTemplate
{
get { return usernamelabletemplate; }
set { usernamelabletemplate = value; }
} private ITemplate passwordlabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate PassWordLableTemplate
{
get { return passwordlabletemplate; }
set { passwordlabletemplate = value; }
} private ITemplate submitbuttontemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate SubmitButtonTemplate
{
get { return submitbuttontemplate; }
set { submitbuttontemplate = value; }
}
//3、重写WebUserLoginControl2类里的创建容器控件的子控件
protected override void CreateContainerChildContorl(UserInfoContainer container)
{
UserInfoContainer2 container2 = container as UserInfoContainer2;
switch (container2.ContainerType)
{
case ContainerType.UserLoginLable:
container2.LabelText = UserLoginLableText;
if (userloginlabletemplate != null)
userloginlabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.UserNameLable:
container2.LabelText = UserNameLableText;
if (usernamelabletemplate != null)
usernamelabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.PassWordLable:
container2.LabelText = PassWordLableText;
if (passwordlabletemplate != null)
passwordlabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.SubmitButton:
container2.LabelText = SubmitButtonText;
if (submitbuttontemplate != null)
submitbuttontemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
default:
base.CreateContainerChildContorl(container2);
break;
}
} //5、重写创建容器控件
protected override UserInfoContainer CreateContainer(ContainerType containertype)
{
return new UserInfoContainer2(containertype);
} //6、重写Lable的Text属性
public override string UserLoginLableText
{
get
{
return ViewState["UserLoginLableText"] != null ? (string)ViewState["UserLoginLableText"] : "用户登陆";
}
set
{
ViewState["UserLoginLableText"] = value;
}
} public override string UserNameLableText
{
get
{
return ViewState["UserNameLableText"] != null ? (string)ViewState["UserNameLableText"] : "用户名";
}
set
{
ViewState["UserNameLableText"] = value;
}
} public override string PassWordLableText
{
get
{
return ViewState["PassWordLableText"] != null ? (string)ViewState["PassWordLableText"] : "密码";
}
set
{
ViewState["PassWordLableText"] = value;
}
} public override string SubmitButtonText
{
get
{
return ViewState["SubmitButtonText"] != null ? (string)ViewState["SubmitButtonText"] : "登陆";
}
set
{
ViewState["SubmitButtonText"] = value;
}
} public override void DataBind()
{
CreateChildControls();
base.DataBind();
} //4、继承原来的UserInfoContainer自定义容器控件
public class UserInfoContainer2 : UserInfoContainer
{
private string labelText; public UserInfoContainer2(ContainerType containerType)
: base(containerType)
{ } public string LabelText
{
get { return labelText; }
set { labelText = value; }
}
} }
}页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="WebFormControl" Namespace="WebFormControl" TagPrefix="HchContorl" %>
<!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 runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<HchContorl:WebUserLoginControl3 ID="WebUserLoginControl1" runat="server" PassWordLableText="密码"
SubmitButtonText="登陆" UserLoginLableText="用户登陆" UserNameLableText="用户名">
<UserNameLableTemplate>yhm</UserNameLableTemplate>
</HchContorl:WebUserLoginControl3>
</div>
</form>
</body>
</html>但是会出现警告.希望高手帮忙下!
而且不能智能提示
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing.Design;
using System.Web.UI.Design;
using System.ComponentModel;
namespace WebFormControl
{
[ToolboxData("<{0}:WebUserLoginControl3 runat=server UserLoginLableText=用户登陆 UserNameLableText=用户名 PassWordLableText=密码 SubmitButtonText=登陆></{0}:WebUserLoginControl3>")]
public class WebUserLoginControl3 : WebUserLoginControl2 //1、继承WebUserLoginControl2类
{
//2、创建模板属性
private ITemplate userloginlabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate UserLoginLableTemplate
{
get { return userloginlabletemplate; }
set { userloginlabletemplate = value; }
} private ITemplate usernamelabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate UserNameLableTemplate
{
get { return usernamelabletemplate; }
set { usernamelabletemplate = value; }
} private ITemplate passwordlabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate PassWordLableTemplate
{
get { return passwordlabletemplate; }
set { passwordlabletemplate = value; }
} private ITemplate submitbuttontemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate SubmitButtonTemplate
{
get { return submitbuttontemplate; }
set { submitbuttontemplate = value; }
}
//3、重写WebUserLoginControl2类里的创建容器控件的子控件
protected override void CreateContainerChildContorl(UserInfoContainer container)
{
UserInfoContainer2 container2 = container as UserInfoContainer2;
switch (container2.ContainerType)
{
case ContainerType.UserLoginLable:
container2.LabelText = UserLoginLableText;
if (userloginlabletemplate != null)
userloginlabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.UserNameLable:
container2.LabelText = UserNameLableText;
if (usernamelabletemplate != null)
usernamelabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.PassWordLable:
container2.LabelText = PassWordLableText;
if (passwordlabletemplate != null)
passwordlabletemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
case ContainerType.SubmitButton:
container2.LabelText = SubmitButtonText;
if (submitbuttontemplate != null)
submitbuttontemplate.InstantiateIn(container2);
else
base.CreateContainerChildContorl(container2);
break;
default:
base.CreateContainerChildContorl(container2);
break;
}
} //5、重写创建容器控件
protected override UserInfoContainer CreateContainer(ContainerType containertype)
{
return new UserInfoContainer2(containertype);
} //6、重写Lable的Text属性
public override string UserLoginLableText
{
get
{
return ViewState["UserLoginLableText"] != null ? (string)ViewState["UserLoginLableText"] : "用户登陆";
}
set
{
ViewState["UserLoginLableText"] = value;
}
} public override string UserNameLableText
{
get
{
return ViewState["UserNameLableText"] != null ? (string)ViewState["UserNameLableText"] : "用户名";
}
set
{
ViewState["UserNameLableText"] = value;
}
} public override string PassWordLableText
{
get
{
return ViewState["PassWordLableText"] != null ? (string)ViewState["PassWordLableText"] : "密码";
}
set
{
ViewState["PassWordLableText"] = value;
}
} public override string SubmitButtonText
{
get
{
return ViewState["SubmitButtonText"] != null ? (string)ViewState["SubmitButtonText"] : "登陆";
}
set
{
ViewState["SubmitButtonText"] = value;
}
} public override void DataBind()
{
CreateChildControls();
base.DataBind();
} //4、继承原来的UserInfoContainer自定义容器控件
public class UserInfoContainer2 : UserInfoContainer
{
private string labelText; public UserInfoContainer2(ContainerType containerType)
: base(containerType)
{ } public string LabelText
{
get { return labelText; }
set { labelText = value; }
}
} }
}页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="WebFormControl" Namespace="WebFormControl" TagPrefix="HchContorl" %>
<!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 runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<HchContorl:WebUserLoginControl3 ID="WebUserLoginControl1" runat="server" PassWordLableText="密码"
SubmitButtonText="登陆" UserLoginLableText="用户登陆" UserNameLableText="用户名">
<UserNameLableTemplate>yhm</UserNameLableTemplate>
</HchContorl:WebUserLoginControl3>
</div>
</form>
</body>
</html>但是会出现警告.希望高手帮忙下!
而且不能智能提示
解决方案 »
- IIS 7.0配置(Asp.net 3.5)
- 送分!(ASP)
- 关于附件大小超标 如何提示的问题~~急
- 页面报<%@ Page language="c#" Codebehind="Index.aspx.cs" AutoEventWireup="false" Inherits="Dxbbs.Index" %>的错!!
- string的MD5值怎么计算?难道非要转成byte[]吗?
- 请叫各位大虾快来看看
- 如何在Datagrid控件中加入不对应数据库的列?
- 一个很可怕的问题,大家注意到了没有,ASP.net 安全问题,请高手讨论,相信大家还没发现此问题
- 各位高手,小弟求助有关ASP.NET中如何将WORD文档通过上传后直接在发布界面转换成HTML的WEB页?
- 从cs传一个int变量到aspx页面的sqlDataSource控件出现错误
- 如何判断gridview可编辑
- 手写代码分页 会不会 高手速来指教
应该是说那中形式的标签一般作为子标签的
要在那个属性的上面加上
[PersistenceMode(PersistenceMode.InnerProperty)]//以子标签的形式显示即是
[PersistenceMode(PersistenceMode.InnerProperty)]//以子标签的形式显示
private ITemplate usernamelabletemplate;
[TemplateContainer(typeof(UserInfoContainer))]
public ITemplate UserNameLableTemplate
{
get { return usernamelabletemplate; }
set { usernamelabletemplate = value; }
}