リピーターが実行する ItemCommand の背後にあるコードを Web サイトで実行していないという問題があります。
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";
}
}
3 つの DropDownLists を AutoPostBack として設定したことは注目に値するため、それらは QueryStrings を満たす IsPostBack イベントをトリガーします。
ここで、「if (Page.IsPostBack)」セクションをコメント アウトすると、イベントが正常にトリガーされることに気付きました。だから私は、Response.Redirect がイベントの発生を妨げていると考えました。正しいですか? イベントが発生する方法と、Response.Redirect を使用した PostBack も同様に発生する方法を見つけたいと思いますが、まだ方法が見つかりません。
どなたかが私を助けてくれることを心から願っています。
ありがとうございました。