我正在寻找一种连接 ASP:LinkButton 以显示为链接的方法,但在后台(100% 在后面的代码中,标记中没有虚拟的预填充表单)做一个表单发布(target=_blank)。我有一个要传递的表单操作、方法和参数,我将在 LinkButton 的“单击”事件中查询它们。实现这一目标的最佳方法是什么?
1 回答
好吧,有很多方法可以做我认为您正在尝试做的事情:)
一个问题; 标准弹出窗口不会触发事件处理程序调用,因为它们通过回发映射到我相信的页面。
如果您对仅 GET 提交感到满意:
选项 A:添加没有设置目标的链接按钮并设置回发事件处理程序以进行单击
设置您的 URL 并将其传递回页面到一个 JS 函数中,该函数将立即加载,例如或使用 jquery 等。
在 JS 函数中,您使用 window.open() 加载 URL,目标设置为“_blank”
效果:用户单击链接,所有代码都在服务器端计算出要显示的 URL,页面刷新到原来的位置,然后加载一个弹出窗口,显示新的 URL
选项 B:将链接设置为具有 target="_blank"
让它调用一个新页面或具有查询字符串参数的同一页面,您可以在 page_load() 中进行预处理
在新页面或控制代码块中,进行计算并将 Response.Redirect() 到新目标
效果:用户单击链接,没有页面刷新,只是一个新的弹出窗口立即重定向到新页面。我认为这是一个更清洁的解决方案!
如果您需要 POST 支持:
动态创建元素或 HTML 字符串,表示具有所有需要的输入元素的表单,并将其输出到弹出窗口(使用选项 b 作为粗略的启动模板),并让 onload 立即提交表单,这将执行 POST 到您通过服务器端脚本决定的 URL,其效果与选项 b 相同,但具有表单级别的 POST。