PageLoad里面
if (!IsPostBack)
{
    初始化
}

解决方案 »

  1.   

    没对哦,还是不能选那个月就保留哪个月,关键是我要用Response.Redirect("Default.aspx");事实上我这个要带上链接的
    如:Response.Redirect("Default.aspx?id=1");我这样也不行
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                drp_month.Items.Add(new ListItem("11", "11"));
                drp_month.Items.Add(new ListItem("22", "22"));
                drp_month.Items.Add(new ListItem("33", "33"));
            }
            if (Label1.Text != "")
            {
                drp_month.SelectedValue = Label1.Text;
            }
        }    protected void drp_month_SelectedIndexChanged(object sender, EventArgs e)
        {
            Label1.Text = drp_month.SelectedValue;
            Response.Redirect("Default.aspx");
        }
      

  2.   


    假设你原来的页面名称为Default.aspx 当你从下拉列表框中选择了值之后跳转的页面的url已经变成了Default.aspx?url=1
    就变成了两个不同的url了,下拉列表框中当然不能保留你之前选中的值,可以这么写:
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                drp_month.Items.Add(new ListItem("11", "11"));
                drp_month.Items.Add(new ListItem("22", "22"));
                drp_month.Items.Add(new ListItem("33", "33"));
                drp_month.DataBind();
                if (!string.IsNullOrEmpty(Request["dro"])) // 判断之前是否已经在下拉列表框中选择了值
                {
                    //如果之前已经在下拉列表框中选择了值,把选择的值赋给下拉列表框
                    drp_month.SelectedValue = Request["dro"]; 
                }        }
        }    protected void drp_month_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Redirect("Default.aspx" + "?dro=" + drp_month.SelectedValue);
        }
       
      

  3.   

    跟 IsPostback 没有关系。贴出你的完整代码。例如,aspx页面第一行为什么不贴出?
      

  4.   

    另外,注意不要用什么记事本去手写代码。你应该按F4,在vs的“属性”窗口上找到那个“闪电”图标,点开后创建事件处理方法。你的 onselectedindexchanged 全都小写字母。而真正自动产生的代码,不是这样的!