使用OnClientClick打开新页面 - ASP.Net

时间:2016-04-19 10:47:31

标签: c# asp.net .net

我在ASP.Net C#工作。单击按钮(添加在gridview中)时,尝试调用Downlaod.aspx页面下载文件。以下是代码。

<asp:Button ID="btnViewDocument" runat="server" Text="View" UseSubmitBehavior="False"
    OnClientClick='<%# String.Format("window.open(""../../Views/Common/Download.aspx?PropertyDocumentID={0}""); return false;", Eval("DocumentId").ToString())%>' />

当我点击它时,我可以在浏览器控制台中看到以下错误。

  

未捕获的SyntaxError:意外的令牌.

但我无法弄清楚语法错误。

2 个答案:

答案 0 :(得分:1)

尝试下面的内容:

方法1:

将双引号更改为单引号

<asp:Button ID="btnViewDocument" runat="server" Text="View" UseSubmitBehavior="False" OnClientClick = '<%#String.Format("window.open('../../Views/Common/Download.aspx?PropertyDocumentID={0}'); return false;');",Eval("DocumentId").ToString()) %>' />

或删除string.Format并使用此类

<asp:Button ID="btnViewDocument" runat="server" Text="View" UseSubmitBehavior="False" OnClientClick = '<%#" window.open('../../Views/Common/Download.aspx?PropertyDocumentID=" + Eval("DocumentId").ToString() + "); return false;" %>' />

方法2:

<强> HTML

<asp:Button ID="btnViewDocument" runat="server" Text="View" UseSubmitBehavior="False" OnClientClick='<%# "LocateMyPage(" + Eval("DocumentId").ToString() + ");" %>' />

Javascript

<script type="text/javascript">

 function LocateMyPage(DocID){
     window.open('../../Views/Common/Download.aspx?PropertyDocumentID=' + DocID);
     return false;
 }

</script>

答案 1 :(得分:0)

一个选项是创建一个单独的js函数并使用它如下所示:

<asp:Button ID="btnViewDocument" runat="server" Text="View" UseSubmitBehavior="False" OnClientClick='OpenWindow(<%# Eval("DocumentId").ToString() %>)' />

JS功能:

function OpenWindow(documentId)
{
    window.open("../../Views/Common/Download.aspx?PropertyDocumentID=" + documentId); 
    return false;
}