2012-06-18 1 views
0

Repeater에서 실행되는 ItemCommand의 코드를 실행하지 않는 웹 사이트 관련 문제가 있습니다. 여기 ItemCommand가 PostBack의 Response.Redirect 때문에 처리되지 않습니다.

내가 내 C# 코드에서 가지고있는 일부 조각입니다

protected void Page_Load() 
    { 
     if (!Page.IsPostBack) 
     { 
      ddlGender.Items.Insert(0, new ListItem("-", "%")); 
      ddlMerk.Items.Insert(0, new ListItem("-", "%")); 
      ddlType.Items.Insert(0, new ListItem("-", "%")); 
     } 

     if (Page.IsPostBack) 
     { 
      Response.Redirect(String.Format("Catalogus.aspx?gender={0}&merkid={1}&type={2}", ddlGender.SelectedValue, ddlMerk.SelectedValue, ddlType.SelectedValue)); 
     } 

    } 

    protected void rCatalogus_ItemCommand(object source, RepeaterCommandEventArgs e) 
    { 
     if (e.CommandName == "voegToe") 
     { 
       HttpCookie winkelmandje = new HttpCookie("Winkelmandje"); 
       string product = (string)e.CommandArgument; 
       winkelmandje[product] = "Test"; 
       winkelmandje.Expires = DateTime.Now.AddDays(2); 
       Response.Cookies.Add(winkelmandje); 

      Label1.Text = "HALSKFDHSALKFDJAS"; 
     } 
    } 

내가 AutoPostBack은 나의 세 DropDownLists을 설정 한 것을 주목할 필요가있다, 그래서 그들은이의 QueryStrings을 채우는 IsPostBack을 이벤트를 트리거합니다.

이제 'if (Page.IsPostBack)'섹션을 주석 처리 할 때 이벤트가 정상적으로 트리거되는 것으로 나타났습니다. 그래서 Response.Redirect가 이벤트가 발사되는 것을 막고 있다고 생각했습니다. 맞습니까? 이벤트가 발생하는 방식과 Response.Redirect가 발생하는 포스트 백을 찾고 싶습니다. 그러나 아직 방법이 없습니다.

저는 여러분 중 누구라도 저를 도울 수있어서 감사 할 것입니다.

감사합니다.

+0

'Response.Redirect'행을 'if (! Page.IsPostBack)'의 'else'부분에 넣으면 동일한 결과를 얻습니다. – Namstel

+0

리디렉션을 수행하면 수명주기가 중단됩니다. 새 페이지가 호출되면 이전 포스트 백의 모든 정보가 사라집니다. – ivowiblo

+0

고맙습니다, ivowiblo, 알아두면 유용합니다. – Namstel

답변

0

페이지를 ItemCommand 이벤트 중에 만 "리디렉션"하려는 경우 Page_Load 중에 페이지를 제거하고 ItemCommand 이벤트 내에서 이동할 수 있습니다.

+0

AutoPostBack이 활성화 된 3 개의 DropDownLists 중 하나의 선택된 값을 변경할 때마다 페이지가 "리디렉션"되도록하고 싶습니다. 왜냐하면 SelectCommand에 다시 사용하는 쿼리 문자열에있는 DDL의 값을 원하기 때문입니다. – Namstel

+0

대신 page_load에서 드롭 다운 목록 선택 인덱스 변경 메소드로 이동 (드롭 다운 목록 값이 변경되면 호출됩니다.) http://msdn.microsoft.com/en-us/library/system. web.ui.webcontrols.listcontrol.selectedindexchanged.aspx –

+0

Raj, 해당 코드를 DropDownLists의 SelectedIndexChanged 부분에 보내 주셔서 감사합니다. 다른 코드 조각도 옮겨야했지만 이제는 모두 매력처럼 작동합니다. – Namstel