2012-03-20 53 views
0

兩個dropdownlists drop1,drop2有單獨的選定索引已更改。在selectedindexchanged上的任何下拉菜單都會轉到另一頁。如果我們在瀏覽器中使用後退按鈕,它會返回到我們的主頁,其中一個下拉將被選中位置。如果我們更改其他下拉菜單,則只能在編碼部分中更改的第一個選定索引頁面中的兩個下拉列表(衝突)

我們如何解決此問題?

代碼

protected void Page_Load(System.Object sender, System.EventArgs e) 
     { 
      try 
      { 
       if (!Page.IsPostBack) 
       { 
        string zCenterId="0"; 

        if(Request.QueryString["LCID"]!=null) 
        { 
         zCenterId = Request.QueryString["LCID"].ToString(); 

        } 
        ManageActivityAdminUIController ObjCtrl = new ManageActivityAdminUIController(); 
      List<ManageActivityAdminUIInfo> ObjInfo = ObjCtrl.GetActivityList(zCenterId); 
      drplistactivity.DataSource = ObjInfo; 
      drplistactivity.DataBind(); 

      drplistactivity.DataSource = ObjInfo; 
      drplistactivity.DataTextField = "ActivityName"; 
      drplistactivity.DataValueField = "ID"; 
      drplistactivity.DataBind(); 
      drplistactivity.Items.Insert(0, new ListItem("<--Select Activity-->", "0")); 
        ManageCoursesController ObjCtrl = new ManageCoursesController(); 
      List<ManageCoursesInfo> ObjInfo = ObjCtrl.GetCourses(zCenterId); 

      drplistcourse.DataSource = ObjInfo; 
      drplistcourse.DataTextField = "CourseName"; 
      drplistcourse.DataValueField = "ID"; 
      drplistcourse.DataBind(); 
      drplistcourse.Items.Insert(0, new ListItem("<--Select Course-->", "0")); 
       } 
      } 
      catch (Exception exc) //Module failed to load 
      { 
       Exceptions.ProcessModuleLoadException(this, exc); 
      } 

     } 


    protected void drplistactivity_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      string url = ResolveClientUrl("~/Activity.aspx?ActivityId="+drplistactivity.SelectedItem.Value); 
      Response.Redirect(url); 
     } 
     protected void drplistcourse_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      string url = ResolveClientUrl("~/Course.aspx?CourseId=" + drplistcourse.SelectedItem.Value); 
      Response.Redirect(url); 

     } 
+0

你調試了嗎?究竟發生了什麼?被調用了錯誤的SelectIndexChanged? – magnattic 2012-03-20 08:43:20

回答

0

如果ViewState的關閉(在下拉列表或任何其父母 - 起來到頁面一路),那麼該事件將不會觸發。 (它應該回發雖然...)

0

該問題似乎是由您的網頁緩存引起的。 我會說,你的兩個事件被觸發,但你不能看到它,因爲重定向

您可以禁用形式的緩存:

 HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
     HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.Cache.SetNoStore(); 
     Response.Expires = -1; 

,或者你可以測試你的事件處理器

內的事件目標
protected void drplistcourse_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if(drplistcourse.UniqueID!=Request.Form["__EVENTTARGET"]) 
      return; 
     string url = ResolveClientUrl("~/Course.aspx?CourseId=" + drplistcourse.SelectedItem.Value); 
     Response.Redirect(url); 

    } 
相關問題