如何在页面后台代码里面得知是否是用户控件里的Dropdownlist激发了Postback事件

yesky_2001 2004-09-09 09:00:47
我在Page的PreRender里面进行了数据绑定;
同时页面里面有一个用户控件,控件里面有一个Dropdownlist支持AutoPostback。
如何在页面里面PreRender事件里面判断是否是用户控件里面的Dropdownlist激发的Postback?

多谢!
...全文
174 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesky_2001 2004-09-09
  • 打赏
  • 举报
回复
好了,自己搞定了。
加了一个属性,在控件的SelectedIndexChanged去修改这个属性值,最后在还原这个属性值就OK了 :)
yesky_2001 2004-09-09
  • 打赏
  • 举报
回复
to roapzone 你的意见不错。

to smoothwood:能不能获取到激发Postback事件的控件名字?
smoothwood 2004-09-09
  • 打赏
  • 举报
回复
用户控件触发的时间在PAGE的PreRender之前触发,你在显示之前是可以判断的
roapzone 2004-09-09
  • 打赏
  • 举报
回复
你可以定义static string 变量量,在Dropdownlist被用到的页面里page—OnLoad事件邦定这个值来处理不同的事件!
roapzone 2004-09-09
  • 打赏
  • 举报
回复
当用户在列表 Web 服务器控件中进行选择时,控件将引发一个事件,您可以直接对该事件做出响应。通常根本不需要直接对选择事件进行响应。
当列表控件中的选择在向服务器的各次发送过程间更改时,会引发 SelectedIndexChanged 事件。
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>
<script language="C#" runat="server">

ICollection CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

for (int i = 0; i < 9; i++) {
dr = dt.NewRow();

dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = DateTime.Now;
dr[3] = (i % 2 != 0) ? true : false;
dr[4] = 1.23 * (i+1);

dt.Rows.Add(dr);
}

DataView dv = new DataView(dt);
return dv;
}

void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
RadioButtonList1.DataSource = CreateDataSource();
RadioButtonList1.DataTextField="StringValue";
RadioButtonList1.DataValueField="CurrencyValue";
RadioButtonList1.DataBind();
}
}

void Index_Changed(Object sender, EventArgs e) {

Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text +
" with a value of $" + RadioButtonList1.SelectedItem.Value +
".";

}

</script>

<body>

<form runat=server>

<asp:RadioButtonList id="RadioButtonList1"
OnSelectedIndexChanged="Index_Changed"
AutoPostBack="true"
runat="server"/>

<br>

<asp:Label id="Label1" runat="server"/>

</form>

</body>
</html>


yichuan1982 2004-09-09
  • 打赏
  • 举报
回复
刚才把意思理解错了
yesky_2001 2004-09-09
  • 打赏
  • 举报
回复
Dropdownlist的SelectedIndexChanged事件里面完成了一些公共的处理。很多页面放了置了这个用户控件,不同的页面需要实现的功能不一样。所以相应的数据绑定部分要放在页面代码里面处理。

如果能放在Dropdownlist里面的SelectedIndexChanged事件处理的话就不这么麻烦了
yichuan1982 2004-09-09
  • 打赏
  • 举报
回复
我已经试验过了,可以行的
直接:
Dorpdownlist.autopostback 得到的就是true和false

然后你就可以进行判断了,呵呵
yichuan1982 2004-09-09
  • 打赏
  • 举报
回复
如果都可以Dropdownlist.autopostback=true
这样都可以赋值的话
那么就应该可以直接
if(Dropdownlist.autopostback)
smoothwood 2004-09-09
  • 打赏
  • 举报
回复
Dropdownlist触发了postback,那么肯定触发了一个事件,比如: SelectedIndexChanged之类的,在这个事件中写代码就是了
hbzx 2004-09-09
  • 打赏
  • 举报
回复
guan zhu !

62,041

社区成员

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

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

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

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