2012-03-20 13 views
0

2つのドロップダウンリストdrop1、drop2には、選択された別のインデックスが変更されています。 selectedindexchangedにあるすべてのドロップダウンは、別のページに移動します。ブラウザで戻るボタンを使用すると、ホームページに戻り、ドロップダウンの1つが選択された位置になります。他のドロップダウンを変更すると、コーディングセクションで最初に選択されたインデックスのみが変更されます。ページ内の2つのドロップダウン(競合)

この問題をどうやって解決できますか?

コード

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

答えて

0

ViewStateが(ドロップダウンやその親に - ページまでのすべての道)がオフの場合、イベントは発生しません。 (それは後に投稿する必要があります...)

0

あなたのページのキャッシュが原因であるようです。 私はあなたの2つのイベントがトリガされていることを言うだろうが、あなたはあなたがあなたのフォームのキャッシュ無効にすることがあるため、リダイレクト

のそれを見ることができません。

 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; 

をしたり、あなたのEventHandler内のEventTargetをテストすることが

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); 

    } 
関連する問題