【问题标题】:How to post the data from ASCX javascript to the same ascx control?如何将数据从 ASCX javascript 发布到同一个 ascx 控件?
【发布时间】:2012-02-22 04:37:57
【问题描述】:

在我的 Web 应用程序中,我有一个主 aspx 页面,其中我有一个按钮单击该 btn 单击我正在调用一个 ascx Web 用户控件,因为我正在使用一个 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);

和 onInit ..

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

【问题讨论】:

  • ascx???您无法访问用户控件,因为它们无法从外部路径访问..您应该使用 httphandlers/webmethods.. 看到这个stackoverflow.com/questions/579024/…
  • 那我如何将文件发送给处理程序?

标签: c# javascript asp.net post


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    虽然您应该查看类似的 SO 问题:

    How can I upload files asynchronously?

    问候。

    【讨论】:

    • 自己实现了拖放吗?还是使用html5?如果你可以使用 jquery 插件,你应该使用blueimp.github.com/jQuery-File-Upload 它支持拖放和多文件上传。
    • 我已经使用 ajax/jQuery/jquery-1.6.1.min.js 插件实现了拖放我的 self..am
    【解决方案3】:

    我们不能直接发布到 ascx 控件。所以我用处理程序来解决这个问题..

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2017-11-21
      • 1970-01-01
      相关资源
      最近更新 更多