asp.net中DropDownList的AutoPostback

时间:2013-11-27 10:39:19

标签: c# 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/>"));

        }
 }

4 个答案:

答案 0 :(得分:2)

即使您将SelectedIndexChanged设置为false,也会触发

AutoPostback事件。但该页面不会立即postback

因此,如果用户更改了DDL的选择,然后(可能在页面中执行其他操作后)单击提交页面的按钮(postback)将调用此事件的处理程序。

答案 1 :(得分:0)

这可能,但不能在代码背后使用事件。 您需要尝试使用JS / JQuery。

检查here

答案 2 :(得分:0)

我认为您要将autopostback设置为false,因为整个页面都是刷新的,要解决此问题,您可以使用更新面板。继续在updatepanel中下拉并将autopostback设置为true。只有updatepanel内部的部分才会进入服务器并调用selectedindexchanged事件,您的页面将不会刷新。 下面的链接将为您提供有关更新面板的一些信息 http://geekswithblogs.net/ranganh/archive/2007/05/16/112525.aspx

答案 3 :(得分:-1)

您确定控件位于From标签下,还尝试使用硬编码值进行测试

 <form ID="form1" runat="server">
  ....dropdown
</form>