今天在使用 Asp:DropDownList控件时,想要做一个绑定数据功能,且要有OnSelectedIndexChanged事件,需要增加属性AutoPostBack="true",否则OnSelectedIndexChanged事件触发不了。
aspx内容:
<tr>
<td style=" width:8%">数据库IP:</td>
<td><asp:DropDownList ID="ddl_db" runat="server" Width="100px" AutoPostBack="true" OnSelectedIndexChanged="ddl_db_SelectedIndexChanged"/>
</td>
</tr>
后台内容:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(BackstageMgt_Admin_Report_Mileage));
if (!IsPostBack)
{
//默认一天,提高页面载入速度
txt_beginTime.Text = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
txt_endTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
dbs = LoginDB.getModelList("");
foreach (LoginDB db in dbs)
{
this.ddl_db.Items.Add(new ListItem(db.Source, db.db_id.ToString()));
}
this.ddl_db.SelectedIndex = 0;
....
}
}
但是我加上这个属性后,发现页面一直在刷新,把这个属性去掉,则就不刷新了。后来试了把后台Page_load中ddl_db相关代码去掉,也不会刷新。
再后来试了一下把第一行的AjaxPro.Utility.RegisterTypeForAjax(typeof(BackstageMgt_Admin_Report_Mileage));注释了,也不会刷新。
现在问题是找到了。还没有深入研究出现的原因。如果你有想法请不吝赐教!!!