如何将数据从ASCX javascript发布到同一个ASCX控件

How to post the data from ASCX javascript to the same ascx control?

本文关键字:ASCX 同一个 控件 javascript 数据      更新时间:2023-09-26

在我的web应用程序中,我有一个主aspx页面,因为我在该页面上单击了一个按钮,btn单击我调用了一个ascx web用户控件,因为我使用了一个javascript,试图通过该javascript将数据发布到同一个ascx中,因为我知道我们可以在ascx页面中发布数据。。但我想发布这怎么可能?

xhr.open('POST', '../test.ascx?Id=' + <%=Id%>, true); //Id is the property in ascx page
xhr.setRequestHeader('FILENAME', file.name);
xhr.send(file);

而且。。

       if (!string.IsNullOrEmpty(Request.Headers["FileName"]))
        {
            string Name = Request.Headers["FileName"].ToString();
            Stream Stream1 = Request.InputStream;
            Add(Name, Stream1, Id);
        }

您不能直接发布到ascx控件。您应该发布到包含该控件的aspx页面。页面将自动创建一个树,其中包含您在页面上(在标记中)静态声明的控件。动态控制需要特别小心。

之后,通常会在早期的事件处理程序(如Page_Load())中解析传入的查询字符串或POST数据,并对指示的控件进行所需的任何调用。

您应该尝试使用一些jquery插件,它将帮助您在上传文件async时提供进度并处理其他事件。。关于它的一篇好文章http://blogs.technet.com/b/sateesh-arveti/archive/2010/11/19/ajax-file-upload-using-jquery.aspx

虽然也有类似的SO问题,你应该看看:

如何异步上传文件?

谨致问候。

我们不能直接发布到ascx控件。所以我用handler来解决这个问题。。

xhr.open('POST', '../Controls/test1.ashx?Id=' + '<%=Id%>', true);