繁体   English   中英

asp.net 中 DropDownList 的 AutoPostback

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM