Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于响应而未处理ItemCommand。是否在回发中重定向?_C#_Asp.net_Postback_Response.redirect_Itemcommand - Fatal编程技术网

C# 由于响应而未处理ItemCommand。是否在回发中重定向?

C# 由于响应而未处理ItemCommand。是否在回发中重定向?,c#,asp.net,postback,response.redirect,itemcommand,C#,Asp.net,Postback,Response.redirect,Itemcommand,我有一个关于我的网站没有运行由我的中继器运行的ItemCommand后面的代码的问题 以下是我的C代码中的一些片段: protected void Page_Load() { if (!Page.IsPostBack) { ddlGender.Items.Insert(0, new ListItem("-", "%")); ddlMerk.Items.Insert(0, new ListItem("-", "

我有一个关于我的网站没有运行由我的中继器运行的ItemCommand后面的代码的问题

以下是我的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";
        }
    }
值得注意的是,我已经将我的三个DropDownLists设置为AutoPostBack,因此它们会触发IsPostBack事件,该事件将填充查询字符串

现在我注意到,当我注释掉“if Page.IsPostBack”部分时,事件触发得很好。所以我认为Response.Redirect阻止了事件的触发,对吗? 我想找到一种方法来触发事件,并用响应进行回发。重定向也会发生,但到目前为止,我还没有找到一种方法

我真诚地希望你们能帮助我,我将不胜感激


谢谢。

如果您希望页面仅在ItemCommand事件期间重定向,则可以在页面加载期间将其删除,并在ItemCommand事件内移动

当我把“Response.Redirect”行放在“if!”!我得到了同样的结果。如果你重定向,生命周期就会中断。调用新页面时,上一次回发的所有信息都将消失。谢谢你,ivowiblo,知道这一点很有用。我希望每次更改已启用自动回发的3个DropDownList之一的选定值时,页面都会重定向。这是因为我希望查询字符串中的DDL中的值,然后我再次将其用于SelectCommand。然后,当下拉列表值发生更改时,将调用方法,而不是在页面中加载移动到下拉列表选择索引更改,将这段代码发送到DropDownList的SelectedIndexChanged部分就成功了。我还需要移动一些其他的代码,但现在一切都像一个符咒。