如何在用户控件中触发内部DropDownList的OnSelectedIndexChanged

alan817 2011-04-19 11:25:13
在用户控件(DropType.ascx)中放一个 DropDownList,

在aspx页面中如何触发 DropType里面 DropDownList的OnSelectedIndexChanged
...全文
160 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alan817 2011-04-19
  • 打赏
  • 举报
回复
问题已解决。

在用户控件 .ascx 里面定义事件


public event EventHandler SelectedIndexChanged;、

// 在页面中可以使用和DropDown一样的事件
// 如:<cc:DropType ID="dropType" runat="server" AutoPostBack="true" OnSelectedIndexChanged="OnChanged"></cc:DropType>
protected virtual void OnSelectedIndexChanged(object sender, EventArgs e)
{
if (SelectedIndexChanged != null)
{
SelectedIndexChanged(sender, e);
}
}

protected void Page_Load(object sender, EventArgs e)
{
this.drop.AutoPostBack = this.AutoPostBack;
this.drop.SelectedIndexChanged += new EventHandler(OnSelectedIndexChanged); // 添加事件到 DropDownList
if (!base.IsPostBack)
{
this.Bind();
}
}

......
alan817 2011-04-19
  • 打赏
  • 举报
回复
这个是事件是要在aspx里面定义,每个aspx页面的OnSelectedIndexChanged 的功能都不一样
有的页面放两个或在更多 droptype 控件,这些控件的功能也不一样
这个是通用的,很多数据表都有这个字段,存储的值都一样
Airch 2011-04-19
  • 打赏
  • 举报
回复
这没关系啊,你现在只是想在aspx里的用户控件的dropdownlist的下拉事件嘛
跟bind没啥关系啊
alan817 2011-04-19
  • 打赏
  • 举报
回复
因为我很多个页面都用这个,不想每次都在aspx页面里面写 Bind 数据代码
Airch 2011-04-19
  • 打赏
  • 举报
回复
为何要那么麻烦呢,你每次页面加载都付给dropdownlist,你干脆在用户控件里就赋好不可以么?
alan817 2011-04-19
  • 打赏
  • 举报
回复
AutoPostBack我是通过 DropType.ascx 的属性来赋值的
现在是如何在控件外部,aspx 里面定义 DropDownList 的事件



protected void Page_Load(object sender, EventArgs e)
{
this.drop.AutoPostBack = this.AutoPostBack;

if (!base.IsPostBack)
{
this.Bind();
}
}

public bool AutoPostBack
{
get
{
object obj = this.ViewState["AutoPostBack"];
if (obj == null)
{
return false;
}
return (bool)obj;
}
set
{
this.ViewState["AutoPostBack"] = value;
}
}

lanjian1931 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 alan817 的回复:]
在用户控件(DropType.ascx)中放一个 DropDownList,

在aspx页面中如何触发 DropType里面 DropDownList的OnSelectedIndexChanged
[/Quote]


是滴。。
fk1984316 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 airch 的回复:]
你用户控件里,DropDownList加个AutoPostBack="true"就可以了
[/Quote]
up
Airch 2011-04-19
  • 打赏
  • 举报
回复
你用户控件里,DropDownList加个AutoPostBack="true"就可以了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧