![](/img/trans.png)
[英]ASP.NET DropDownList AutoPostback Not Working - What Am I Missing?
[英]AutoPostback for DropDownList in asp.net
当我为 DropDownList 设置 AutoPostback=True 时,则只触发 SelectedIndexChanged 事件,否则不会...
即使 AutoPostback=false 我也想触发该事件....
这个有什么解决办法吗...
<asp:DropDownList ID="SlotDuration_DDL" runat="server" Style="color: #727272 !important; font-size: 24px; font-weight: 100;" CssClass="span2" OnSelectedIndexChanged="SlotDuration_DDL_SelectedIndexChanged">
<asp:ListItem>10</asp:ListItem>
<asp:ListItem>15</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
<asp:ListItem>25</asp:ListItem>
<asp:ListItem>30</asp:ListItem>
<asp:ListItem>35</asp:ListItem>
<asp:ListItem>40</asp:ListItem>
<asp:ListItem>45</asp:ListItem>
<asp:ListItem>50</asp:ListItem>
<asp:ListItem>55</asp:ListItem>
<asp:ListItem>60</asp:ListItem>
</asp:DropDownList>
背后的代码
protected void SlotDuration_DDL_SelectedIndexChanged(object sender, EventArgs e)
{
DateTime dt = DateTime.Parse(StartDate_TB.Text);
int n = Int32.Parse(EventDuration_DDL.SelectedItem.ToString());
for (int i = 0; i < n; i++)
{
Label NewLabel = new Label();
NewLabel.ID = "Label" + i;
var eventDate = dt.AddDays(i); //Calendar1.SelectedDate.Date.AddDays(i);
NewLabel.Text = eventDate.ToLongDateString();
CheckBox newcheck = new CheckBox();
newcheck.ID = "CheckBox" + i;
this.Labeldiv.Controls.Add(new LiteralControl("<span class='h1size'>"));
this.Labeldiv.Controls.Add(NewLabel);
this.Labeldiv.Controls.Add(new LiteralControl("</span>"));
this.Labeldiv.Controls.Add(new LiteralControl("<div class='make-switch pull-right' data-on='info'>"));
this.Labeldiv.Controls.Add(newcheck);
this.Labeldiv.Controls.Add(new LiteralControl("</div>"));
this.Labeldiv.Controls.Add(new LiteralControl("<br/>"));
}
}
即使将AutoPostback
设置为false,也会触发SelectedIndexChanged
事件。 但是页面不会立即postback
。
因此,如果用户更改DDL的选择,然后(可能在完成页面中的其他操作之后)单击提交页面的按钮( postback
),则将调用此事件的处理程序。
可以,但是不能在后面的代码中使用事件。 您将需要尝试使用JS / JQuery。
在这里检查。
我认为您想将autopostback设置为false,因为整个页面都在刷新,要解决此问题,您可以使用update panel。 保持在updatepanel中的下拉菜单中并将autopostback设置为true。 只有updatepanel内部的部分会转到服务器,并会调用selectedindexchanged事件,并且您的页面不会刷新。 下面的链接将为您提供有关更新面板的一些信息http://geekswithblogs.net/ranganh/archive/2007/05/16/112525.aspx
我想在从下拉列表中选择州后选择州,它将绑定城市下拉数据。但是现在如果我选择州,那么它不会显示所选州的名称。 有什么问题请任何人帮助我。以下是代码
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlState_SelectedIndexChanged"></asp:DropDownList>
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack)
{
BindStateList();
}
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e) { try { SqlDataAdapter adp = new SqlDataAdapter("select cityname from tblCityWithState With(NOLOCK) where statename='" + ddlState.SelectedValue.ToString() + "' order by cityname asc",骗局); 数据集 ds = 新数据集(); adp.Fill(ds); ddlCity.DataSource = ds; ddlCity.DataTextField = "城市名称"; ddlCity.DataValueField = "城市名称"; ddlCity.DataBind(); ddlCity.Items.Insert(0, new ListItem("--Select--", "0")); ds.Dispose(); adp.Dispose();
}
catch (Exception ex)
{
ex.Message.ToString();
}
}
您确定控件在From标记下,还尝试使用硬编码值对其进行测试
<form ID="form1" runat="server">
....dropdown
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.