我目前正在开发一个旧的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>
答案 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)
日期文本字段位于单独的更新面板中。我删除了此面板并调用父更新面板进行更新。这就像一个魅力。