Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# ASP.Net AjaxControlToolkit AsyncFileUpload位于更新面板中,该面板是使用母版页c在服务器端代码中创建的#_C#_Asp.net_Updatepanel_Ajaxcontroltoolkit_Asyncfileupload - Fatal编程技术网

C# ASP.Net AjaxControlToolkit AsyncFileUpload位于更新面板中,该面板是使用母版页c在服务器端代码中创建的#

C# ASP.Net AjaxControlToolkit AsyncFileUpload位于更新面板中,该面板是使用母版页c在服务器端代码中创建的#,c#,asp.net,updatepanel,ajaxcontroltoolkit,asyncfileupload,C#,Asp.net,Updatepanel,Ajaxcontroltoolkit,Asyncfileupload,我整个上午都在四处奔波,试图让asp.net AjaxControlToolkit中的AsyncFileUpload控件在我的情况下工作,但运气不好 我有一个支持Ajax的页面,它向用户显示问题,然后允许用户在不需要整页回复的情况下来回查看问题,页面上可以显示多个问题,其中一个或多个问题可以是文件上载控件。该页面使用了一个母版页,其中包含了表单元素,我已经对其进行了修改,这是众多答案的结果,这些答案似乎都指向了问题所在 然后将控件添加到aspx页面中的占位符中 <asp:Update

我整个上午都在四处奔波,试图让asp.net AjaxControlToolkit中的AsyncFileUpload控件在我的情况下工作,但运气不好

我有一个支持Ajax的页面,它向用户显示问题,然后允许用户在不需要整页回复的情况下来回查看问题,页面上可以显示多个问题,其中一个或多个问题可以是文件上载控件。该页面使用了一个母版页,其中包含了表单元素,我已经对其进行了修改,这是众多答案的结果,这些答案似乎都指向了问题所在

  • 然后将控件添加到aspx页面中的占位符中

     <asp:UpdatePanel ID="questionPanel" runat="server" UpdateMode="Conditional">     
        <ContentTemplate>           
            <asp:PlaceHolder ID="QuestionSection" runat="server">             
            </asp:PlaceHolder>
        </ContentTemplate>    
    </asp:UpdatePanel>
    
    其他答案表明,控件的可见设置在true/false之间切换存在问题,但当页面直接由url加载或使用应用程序中的be next和back按钮导航时,控件的可见性永远不会改变

    虽然这确实使我考虑到,因为控件不在页面的ASPX代码上,但是加载服务器端,在那里可能会有问题。由于这个原因,我对“下一步”和“后退”按钮事件没有触发有一个问题,最终不得不为这些控件向updatepanel添加代码以触发事件,但这不是问题控件的选项,因为它会随着页面的变化而变化

    最后一点信息希望解决一个解决方案,控件确实出现在页面上,我可以单击它并浏览到一个文件,但当我选择了该文件时,它似乎调用page_Load,而没有其他内容,出现以下两个弹出窗口

     Server Response Error: 'Unknown Server Error'
     Do You want to see the response page?
    
    然后

     Unhandled Exception: Server Response Error: 'Unknown Server Error'
    
    所有测试过FF8、Chrome15.0和IE9的浏览器都会出现这种情况

    在Firefox中的firebug中,我还得到了以下javaScript错误,这可能与

     Index or size is negative or greater than the allowed amount
     [Break On This Error] Type.registerNamespace("Sys.Extended.U...FileUploadEventArgs",Sys.EventArgs); 
    
    任何帮助都将不胜感激


    编辑2011年12月13日我使用今天下载的AjaxControlToolkit版本4.1.5作为最新版本,问题仍然存在。

    问题已解决

    我没有意识到的是,当出现部分页面回发时,我动态创建的字段都没有填充。看了这个之后:

    我发现在页面加载之前需要重新初始化控件,即在页面_Init中,我稍微更改了代码,以便在_displaySingleQuestion()中方法我告诉会话问题ID是什么,然后在Page_Init中调用该方法,因此当前问题的控件位于要由save方法查询的页面上

        public void Page_Init(object sender, EventArgs e)
        {
            logger.Debug("Page_Init START");
            if (!Page.IsPostBack) { Session["qid"] = 0; }
            int qid = Convert.ToInt32(Session["qid"]);
            if (qid > 0)
            {
                _displaySingleQuestion(_formObject, qid);
            }
            logger.Debug("Page_Init END");
        }
    
    这还意味着需要重新初始化AsyncFileUpload,页面才能继续,完成后,我的日志记录方法现在记录fileuploadClick()事件正在成功调用

    注意,我添加了一行

     if (!Page.IsPostBack) { Session["qid"] = 0; }
    

    这样,它只会尝试在部分页面回发而不是完整页面上获取值,例如首次加载页面时。

    解决您自己的问题的功劳+1刷新应用程序池并重新启动网站。我没有为我工作。此外,我在web.config中将sessionstate改为InProc,而不是stateserver。
     Unhandled Exception: Server Response Error: 'Unknown Server Error'
    
     Index or size is negative or greater than the allowed amount
     [Break On This Error] Type.registerNamespace("Sys.Extended.U...FileUploadEventArgs",Sys.EventArgs); 
    
        public void Page_Init(object sender, EventArgs e)
        {
            logger.Debug("Page_Init START");
            if (!Page.IsPostBack) { Session["qid"] = 0; }
            int qid = Convert.ToInt32(Session["qid"]);
            if (qid > 0)
            {
                _displaySingleQuestion(_formObject, qid);
            }
            logger.Debug("Page_Init END");
        }
    
     if (!Page.IsPostBack) { Session["qid"] = 0; }