DropDownList在更改所选索引时不会更新

时间:2014-05-22 07:10:18

标签: c# asp.net .net

我目前正在开发一个旧的asp网站,但我遇到了一些问题。我不得不说,我对asp.net的速度不太高兴。我有一个带有硬编码的项目(天 - 星期一/星期五)的DropDownList。

我正在尝试根据日历控件选择的日期更改索引,日历控件将文本格式的日期插入到文本字段中。在文本字段的文本更改事件中,我正在尝试更改索引。

当我快速监视所选索引时,我看到索引根据日期正确更改,但由于某种原因,实际控件未在网站上更新。

我已经启用了autoPostBack,但遗憾的是没有帮助。

textChanged code:

            tbLoadFrom.Text = Util.ToTime(_programSession.GetTime(customer, address, customer.DefaultLoadTimeFrom, "LoadFrom", Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek)));
            tbLoadTill.Text = Util.ToTime(_programSession.GetTime(customer, address, customer.DefaultLoadTimeTill, "LoadTill", Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek)));
            ddl_LoadTimeDay.SelectedIndex = Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek);
            ddl_LoadTimeDay.DataBind();

的DropDownList:

                                  <asp:DropDownList ID="ddl_LoadTimeDay" runat="server" EnableViewState="true" AutoPostBack="True" OnSelectedIndexChanged="ddl_LoadTimeDay_SelectedIndexChanged">
                                        <asp:ListItem Value="0">Maandag</asp:ListItem>
                                        <asp:ListItem Value="1">Dinsdag</asp:ListItem>
                                        <asp:ListItem Value="2">Woensdag</asp:ListItem>
                                        <asp:ListItem Value="3">Donderdag</asp:ListItem>
                                        <asp:ListItem Value="4">Vrijdag</asp:ListItem>
                                        <asp:ListItem Value="5">Default</asp:ListItem>
                                    </asp:DropDownList>

2 个答案:

答案 0 :(得分:1)

在文本更改事件中删除Dropdownlist的DataBind()

  tbLoadFrom.Text = Util.ToTime(_programSession.GetTime(customer, address, customer.DefaultLoadTimeFrom, "LoadFrom", Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek)));
  tbLoadTill.Text = Util.ToTime(_programSession.GetTime(customer, address, customer.DefaultLoadTimeTill, "LoadTill", Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek)));
   ddl_LoadTimeDay.SelectedIndex = Util.ToIntBasedDayOfWeek(Convert.ToDateTime(tbLoadDate.Text).DayOfWeek);
  ddl_LoadTimeDay.DataBind(); //Remove this

此行将使ASP.NET再次从数据源加载数据,并且您选择的索引将被清除并设置为默认值。

答案 1 :(得分:0)

日期文本字段位于单独的更新面板中。我删除了此面板并调用父更新面板进行更新。这就像一个魅力。