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가 발생하는 포스트 백을 찾고 싶습니다. 그러나 아직 방법이 없습니다.
저는 여러분 중 누구라도 저를 도울 수있어서 감사 할 것입니다.
감사합니다.
'Response.Redirect'행을 'if (! Page.IsPostBack)'의 'else'부분에 넣으면 동일한 결과를 얻습니다. – Namstel
리디렉션을 수행하면 수명주기가 중단됩니다. 새 페이지가 호출되면 이전 포스트 백의 모든 정보가 사라집니다. – ivowiblo
고맙습니다, ivowiblo, 알아두면 유용합니다. – Namstel