列表框选择不保留在回发上(是的,我检查回发)

时间:2011-12-14 19:58:55

标签: asp.net .net listbox postback asp.net-4.0

我在asp.net网页上有一个列表框。

我选择第2项。如果我打开了自动回复,则重新加载页面并选择item1。 我只在第一次加载(!IsPostback)时对页面进行了数据绑定,已经逐步完成并验证了这一点。它不是重新绑定或重新填充列表,它只是再次选择第一个项目,删除第二个项目选择。

此外,onselectedindexchanged事件仅在回发后触发,因此我无法将所选索引保留在会话变量中以设置回发...

页面设置为viewstateenabled,控件设置为viewstateenabled,viewstatemode已启用。

如何设置它以便在回发时仍然选择第二项?我的代码很简单,但我会发布它......

<asp:ListBox ID="AvailableRepairSelection" runat="server" AutoPostBack="True" 
            onselectedindexchanged="AvailableRepairSelection_SelectedIndexChanged" 
            ViewStateMode="Enabled"></asp:ListBox>

再一次,我选择第2项,页面帖子,第1项突出显示。

代码隐藏的相关部分:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int selectedmodel = Convert.ToInt32(Session["selectedModel"]);
            List<AvailableRepair> Repairs = (from r in Database.instance().AvailableRepairs
                                             where r.modelid == selectedmodel
                                             select r).ToList<AvailableRepair>();
            foreach (AvailableRepair repair in Repairs)
            {
                AvailableRepairSelection.Items.Add(new ListItem(repair.repair + ": " + repair.description + "- " + repair.cost, repair.cost));
            }
        }
    }

请注意,此页面还有更多内容,但我已将这些片段的唯一问题隔离开来。因此,不要告诉我如何更改我的页面或为什么我回复选择时只有页面中的列表框。

0 个答案:

没有答案