ArcGIS JavaScript API 4.11 - 打印导致asp.net中的回发问题

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (11)

我是ESRI和javascript API的新手。我正在尝试实现输入以下任务,如下所示:https//developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Print.html

我使用以下代码创建打印功能,它正确显示在图像中:

require(["esri/widgets/Print"], function (Print) {
  var print = new Print({
    view: view,
    printServiceUrl: "https://printserviceurl/services/PrintService/GPServer/Export%20Web%20Map"
  });

    // Adds widget below other elements in the top left corner of the view
    view.ui.add(print, {
      position: "bottom-left"
    });
});

我遇到的问题是单击“高级选项”,“导出”或其他一些功能导致回发。这是一个asp.net Web应用程序,该地图位于asp.net主页面窗体控件中。这导致整个页面回发。有没有人建议阻止整页回发并保持打印功能?如果我将它移到标签之外但是在内容区域必须保留在表单内的页面中正确定位它,它确实可以正常工作。

提问于
用户回答回答于

我终于找到了解决方案。我使用以下代码创建打印功能并插入到asp.net表单标记之外的div中。

require(["esri/widgets/Print"], function (Print) {
            //create the print widget and insert into the print container
            var print = new Print({
                view: view,
                printServiceUrl: "https://printserviceurl/services/PrintService/GPServer/Export%20Web%20Map"
            }, document.getElementById("divPrintContainer"));
        });

然后我使用样式将容器定位在我想要的位置。此步骤可能需要一些自定义样式,具体取决于您希望div显示的位置。如果它在表单标记之外,它将阻止在与打印小部件交互时通过回发重新加载整个页面。

<div id="divPrintContainer" style="position:absolute;bottom:20px;right:30px;"></div>

扫码关注云+社区

领取腾讯云代金券