作用:当自定义控件的下拉发生变化时,其他控件或HTML代码做相应的业务处理。
一、自定义控件的HTML代码:
.....................
.....
<asp:DropDownList ID="ddl_ProfileType" Width="200px" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddl_ProfileType_SelectedIndexChanged">
</asp:DropDownList>
......
..................
当下拉发生变化时,触发一个事件。
二、自定义控件的CS代码:
public partial class AddProfile : System.Web.UI.UserControl
{
public event EventHandler ChangeProfileType;
private void OnChangeProfileType(object sender,EventArgs e)
{
if (this.ChangeProfileType != null)
{
ChangeProfileType(this, e);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}
//機構類型
protected void ddl_ProfileType_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ddl_ProfileType.SelectedValue == ((int)ProfileType.Individual).ToString())
{
Create_ProfileTypeShow(true);
}
else
{
Create_ProfileTypeShow(false);
}
this.OnChangeProfileType(sender, e);
}
}
三、调用自定义控件的代码
public partial class Profile_Add : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
this.AddProfile1.ChangeProfileType += new EventHandler(AddProfile1_OnChangeProfileType);
}
void AddProfile1_OnChangeProfileType(object sender, EventArgs e)
{
ProfileORM ProfileModel = new ProfileORM();
ProfileModel = this.AddProfile1.GetProfileModel();
if (ProfileModel.ProfileType == (int)ProfileType.Individual)
{
this.tr_MediaIndivudual.Visible = true;
this.tr_MediaType.Visible = false;
}
else
{
this.tr_MediaIndivudual.Visible = false;
this.tr_MediaType.Visible = true;
}
}
}
注意:如果自定义控件放在Ajax里面,其他代码也要放在Ajax里面,才能看得出效果。