0

リピーターが実行する 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 も同様に発生する方法を見つけたいと思いますが、まだ方法が見つかりません。

どなたかが私を助けてくれることを心から願っています。

ありがとうございました。

4

1 に答える 1

0

ItemCommand イベント中にのみページを「リダイレクト」する場合は、Page_Load 中にページを削除して、ItemCommand イベント内に移動できます。

于 2012-06-18T20:10:18.003 に答える