C# dropdownlist的自动回发未加载最近更改的值

C# dropdownlist的自动回发未加载最近更改的值,c#,asp.net-2.0,C#,Asp.net 2.0,下面是我的页面加载代码和dropdownlist(drpdwnshowitems)的SelectedIndexChanged事件,在该事件中,我从数据库绑定了数据,并根据需要设置了AutoPostBack true。我正在将最近选择的值(项)存储到名为“NoOfShowItem”的cookie中,我正在页面加载中请求该值,并希望使用该值,但这只给出了以前的值。为了了解这一点,我在javascript messagebox中也显示了同样的值。在一步一步执行之后,我看到selectedIndexCh

下面是我的页面加载代码和dropdownlist(drpdwnshowitems)的SelectedIndexChanged事件,在该事件中,我从数据库绑定了数据,并根据需要设置了AutoPostBack true。我正在将最近选择的值(项)存储到名为“NoOfShowItem”的cookie中,我正在页面加载中请求该值,并希望使用该值,但这只给出了以前的值。为了了解这一点,我在javascript messagebox中也显示了同样的值。在一步一步执行之后,我看到selectedIndexChanged事件在加载(回发)页面后触发。我找了这么多,但找不到确切的答案。所以请帮助我。提前谢谢

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI; 
using System.Web.UI.WebControls;
using System.Data;

public partial class Client_Category : System.Web.UI.Page
{

float countshowitem;
protected void Page_Load(object sender, EventArgs e)
{
//to see recently selected value
Response.Write("<script language=\"javascript\">alert('"+
drpdwnshowitems.SelectedValue + "')</script>");
if (!IsPostBack)
    {
        DataTable dtno = ShowItemsFunctions.Select_All_Numbers();
        DataRow dr = dtno.NewRow();
        dr["NoOfProduct"] = "--Select One--";
        dtno.Rows.InsertAt(dr, 0);
        drpdwnshowitems.DataSource = dtno;
        drpdwnshowitems.DataTextField = "NoOfProduct";
        drpdwnshowitems.DataValueField = "NoOfProduct";
        drpdwnshowitems.DataBind();

    }

    try
   {
     countshowitem = float.Parse(Request.Cookies["NoOfShowItem"].Value.ToString());
     drpdwnshowitems.SelectedValue = countshowitem.ToString();

    }
    catch (Exception ex)
    {
       countshowitem = 9;
       drpdwnshowitems.SelectedValue = countshowitem.ToString();
    }
}

protected void drpdwnshowitems_SelectedIndexChanged(object sender, EventArgs e)
{
    countshowitem = int.Parse(drpdwnshowitems.SelectedValue.ToString());
    Response.Cookies["NoOfShowItem"].Value = drpdwnshowitems.SelectedValue.ToString();
    Response.Cookies["NoOfShowItem"].Expires = System.DateTime.Now.AddHours(2);
}
}
使用系统;
使用System.Collections.Generic;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用系统数据;
公共部分类客户端\ u类别:System.Web.UI.Page
{
浮动计数显示项;
受保护的无效页面加载(对象发送方、事件参数e)
{
//查看最近选定的值的步骤
Response.Write(“警报(”)+
drpdwnshowitems.SelectedValue+“')”;
如果(!IsPostBack)
{
DataTable dtno=ShowItemsFunctions。选择所有数字();
DataRow dr=dtno.NewRow();
dr[“NoOfProduct”]=“选择一个——”;
dtno.Rows.InsertAt(dr,0);
drpdwnshowitems.DataSource=dtno;
drpdwnshowitems.DataTextField=“NoOfProduct”;
drpdwnshowitems.DataValueField=“NoOfProduct”;
drpdwnshowitems.DataBind();
}
尝试
{
countshowitem=float.Parse(Request.Cookies[“NoOfShowItem”].Value.ToString());
drpdwnshowitems.SelectedValue=countshowitem.ToString();
}
捕获(例外情况除外)
{
countshowitem=9;
drpdwnshowitems.SelectedValue=countshowitem.ToString();
}
}
受保护的无效drpdwnshowitems\u SelectedIndexChanged(对象发送方,事件参数e)
{
countshowitem=int.Parse(drpdwnshowitems.SelectedValue.ToString());
Response.Cookies[“NoOfShowItem”]。Value=drpdwnshowitems.SelectedValue.ToString();
Response.Cookies[“NoOfShowItem”].Expires=System.DateTime.Now.AddHours(2);
}
}

我不确定,但您可以在页面加载结束时动态设置SelectedIndexChanged属性

drpdwnshowitems.SelectedIndexChanged += drpdwnshowitems_SelectedIndexChanged;

由于属性设置在SelectedValue之后,可能事件不会在第一次触发…

谢谢您的回答,我将尝试此选项。希望这能奏效。