Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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# 回发或回调参数无效。关于弹出模式窗口_C#_Linq To Sql_Asp.net Ajax_Postback_Modalpopupextender - Fatal编程技术网

C# 回发或回调参数无效。关于弹出模式窗口

C# 回发或回调参数无效。关于弹出模式窗口,c#,linq-to-sql,asp.net-ajax,postback,modalpopupextender,C#,Linq To Sql,Asp.net Ajax,Postback,Modalpopupextender,我有一个网页上有一个网格。单击“编辑”时,将打开一个弹出模式窗口。在弹出模式窗口内,有一个网格,下面有一个下拉列表和一个保存按钮。单击“保存”时,所选值将插入模式窗口中的网格中。。第一次一切都很好。。但是,如果您已经关闭了模式窗口,并且碰巧重新执行了该过程(单击第一个网格上的编辑>模式窗口显示>在ddl上选择一个项目>点击保存按钮),则会发生回发错误..我使用更新面板,并且我还向模式窗口内的添加按钮添加了回发触发器 Invalid postback or callback argument.

我有一个网页上有一个网格。单击“编辑”时,将打开一个弹出模式窗口。在弹出模式窗口内,有一个网格,下面有一个下拉列表和一个保存按钮。单击“保存”时,所选值将插入模式窗口中的网格中。。第一次一切都很好。。但是,如果您已经关闭了模式窗口,并且碰巧重新执行了该过程(单击第一个网格上的编辑>模式窗口显示>在ddl上选择一个项目>点击保存按钮),则会发生回发错误..我使用更新面板,并且我还向模式窗口内的添加按钮添加了回发触发器

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. 
下面是模态窗口内的add按钮中的代码(导致错误的代码)

用于在模式窗口上填充网格的代码

//Populate Edit Depreciaiton Grid on Modal
    public void populategrd_Editdepreciation(Guid DepID, string incotype)
    {
        ViewState["DepID"] = DepID;
        ViewState["incotype"] = incotype;
        var x = from a in DepreciationMatrix_worker.get(a => a.DepID == DepID)
                select new { a.DepMatrixID, a.IncCapexOpexID };

        grd_Editdepreciation.DataSource = x;
        grd_Editdepreciation.DataBind();

        //Populate dropdownlist on edit depreciation modal

        MarginAnalysi checkmarginanalysisid = MarginAnalysisAssumption_worker.get(a => a.ProjectCode == lbl_projectCode.Text).SingleOrDefault();

        //Selects eithers Equipment or Network Depreciation
        string test = incotype.ToUpper();

        if (test.Contains("EQUIPMENT"))
        {
            var dropdowndepreciationmodal = from a in tblIncCapexOpex_worker.get(a => a.MarginAnalysisID == checkmarginanalysisid.MarginAnalysisID && a.IncCoTypeID == "CAPEX" && a.DepreciationTypeID == "EQUIPMENT")
                                            select new { text = a.Description, value = a.IncCapexOpexID };

            populateDropdownlist(ddDepreciationModalEmpty, dropdowndepreciationmodal, true);
        }
        else
        {
            var dropdowndepreciationmodal = from a in tblIncCapexOpex_worker.get(a => a.MarginAnalysisID == checkmarginanalysisid.MarginAnalysisID && a.IncCoTypeID == "CAPEX" && a.DepreciationTypeID == "NETWORK")
                                            select new { text = a.Description, value = a.IncCapexOpexID };

            populateDropdownlist(ddDepreciationModalEmpty, dropdowndepreciationmodal, true);
        }



    }

这个错误说明了一切。您可以更改配置条目以禁用验证,但我不建议这样做。或者您可以发布一些代码,以便我们了解您的确切情况。修剪所有不必要的代码,只修剪相关的行。@TomislavMarkovski嗨,我添加了一些代码。我希望您能在这方面帮助我。我尝试通过EnableEventValidation=“False”禁用,它确实解决了问题,但也使我的必填字段无法工作。所以我想这对我来说不是最好的选择,我不知道你确切的html aspx结构,但我有一个想法可以引导你。第一次更新网格后,它会生成一些服务器id,这些id不会持久保存在ViewState中。因此,当您将它们发回时,服务器不知道它们。要解决此问题,通常需要刷新grid/updatepanel,以便它相应地更新viewstate。您的
EditModalDepPopup
是什么类型的控件?@TomislavMarkovski My viewstate在第一个网格的编辑事件中更新,而EditModalDepPopup是一个模式窗口。。触发第一个网格的编辑事件后,它将打开一个modalwindow。。然后,如果用户通过按“添加”按钮添加项目,则模式窗口上的网格将通过调用populategrd_editValention(新Guid(ViewState[“DepID”].ToString())、ViewState[“incotype”].ToString())重新填充;
 MarginAnalysi checkmarginanalysisid = MarginAnalysisAssumption_worker.get(a => a.ProjectCode == lbl_projectCode.Text).SingleOrDefault();
            DepreciationMatrix tblDepreciationMatrix = new DepreciationMatrix();

            tblDepreciationMatrix.DepMatrixID = Guid.NewGuid();
            tblDepreciationMatrix.DepID = new Guid(ViewState["DepID"].ToString());
            tblDepreciationMatrix.IncCapexOpexID = new Guid(ddDepreciationModalEmpty.SelectedValue);
            DepreciationMatrix_worker.insert(tblDepreciationMatrix);
            DepreciationMatrix_worker.submit();

 EditModalDepPopup.Show();

            populategrd_Editdepreciation(new Guid(ViewState["DepID"].ToString()), ViewState["incotype"].ToString());
//Populate Edit Depreciaiton Grid on Modal
    public void populategrd_Editdepreciation(Guid DepID, string incotype)
    {
        ViewState["DepID"] = DepID;
        ViewState["incotype"] = incotype;
        var x = from a in DepreciationMatrix_worker.get(a => a.DepID == DepID)
                select new { a.DepMatrixID, a.IncCapexOpexID };

        grd_Editdepreciation.DataSource = x;
        grd_Editdepreciation.DataBind();

        //Populate dropdownlist on edit depreciation modal

        MarginAnalysi checkmarginanalysisid = MarginAnalysisAssumption_worker.get(a => a.ProjectCode == lbl_projectCode.Text).SingleOrDefault();

        //Selects eithers Equipment or Network Depreciation
        string test = incotype.ToUpper();

        if (test.Contains("EQUIPMENT"))
        {
            var dropdowndepreciationmodal = from a in tblIncCapexOpex_worker.get(a => a.MarginAnalysisID == checkmarginanalysisid.MarginAnalysisID && a.IncCoTypeID == "CAPEX" && a.DepreciationTypeID == "EQUIPMENT")
                                            select new { text = a.Description, value = a.IncCapexOpexID };

            populateDropdownlist(ddDepreciationModalEmpty, dropdowndepreciationmodal, true);
        }
        else
        {
            var dropdowndepreciationmodal = from a in tblIncCapexOpex_worker.get(a => a.MarginAnalysisID == checkmarginanalysisid.MarginAnalysisID && a.IncCoTypeID == "CAPEX" && a.DepreciationTypeID == "NETWORK")
                                            select new { text = a.Description, value = a.IncCapexOpexID };

            populateDropdownlist(ddDepreciationModalEmpty, dropdowndepreciationmodal, true);
        }



    }