Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 无法单击asp链接按钮_Asp.net_Linkbutton - Fatal编程技术网

Asp.net 无法单击asp链接按钮

Asp.net 无法单击asp链接按钮,asp.net,linkbutton,Asp.net,Linkbutton,我有一个链接按钮,显示上传文档的路径。标签结构如下 <tr> <td> <asp:Label ID="lblDoc" runat="server" Text="Document:"></asp:Label> </td> <td colspan="3">

我有一个链接按钮,显示上传文档的路径。标签结构如下

            <tr>
                <td>
                    <asp:Label ID="lblDoc" runat="server" Text="Document:"></asp:Label>
                </td>
                <td colspan="3">
                    <asp:LinkButton ID="lnkDoc" runat="server" PostBackUrl="~/Transfer.aspx"></asp:LinkButton>
                </td>
            </tr>

我正在服务器端处理onclick事件:

Private Sub lnkDoc_Click(sender As Object, e As System.EventArgs) Handles lnkDoc.Click
    ClientScript.RegisterStartupScript(Me.GetType(), "onclick", "<script language=javascript>window.open('OpenDocument.aspx?DocumentPath=" & System.Web.HttpUtility.UrlEncode(lnkDoc.Text) & "', 'OpenUploadedDoc','left=0px,top=0px,width='+screen.availWidth+',height='+screen.availHeight+',menubar=yes,resizable=yes,scrollbars=1')</script>")
End Sub
Private Sub lnkDoc_Click(发送方作为对象,e作为System.EventArgs)处理lnkDoc。单击
ClientScript.RegisterStartupScript(Me.GetType(),“onclick”,“window.open('OpenDocument.aspx?DocumentPath=“&System.Web.HttpUtility.UrlEncode(lnkDoc.Text)”和“,'OpenUploadedDoc','left=0px,top=0px,width='+screen.availWidth+”,height='+screen.availHeight+,menubar=yes,resizable=yes,scrollbars=1'))
端接头
但我无法单击文档路径。当我将鼠标悬停在linkbutton上时,什么也没有发生。可能是什么问题

编辑: 当我尝试在客户端添加onclick时,我得到以下错误


Transfer.Private子lnkDoc_Click(发送者作为对象,e作为System.EventArgs)在此上下文中不可访问,因为它是“Private”。

尝试在.aspx页面上给出onclick事件,并检查它


我希望它能这样工作

您需要添加单击事件链接按钮

<asp:LinkButton ID="lnkDoc" runat="server"  onclick="lnkDoc_Click"></asp:linkbutton>
  <asp:LinkButton ID="lnkDoc" runat="server" PostBackUrl="~/Transfer.aspx" onclick="lnkDoc_Click"></asp:linkbutton>
Protected Sub lnkDoc_Click(发送方作为对象,e作为System.EventArgs)处理lnkDoc。单击
ClientScript.RegisterStartupScript(Me.GetType(),“onclick”,“window.open('OpenDocument.aspx?DocumentPath=“&System.Web.HttpUtility.UrlEncode(lnkDoc.Text)”和“,'OpenUploadedDoc','left=0px,top=0px,width='+screen.availWidth+”,height='+screen.availHeight+,menubar=yes,resizable=yes,scrollbars=1'))
端接头
注意:使您的活动受到保护私人

此外,还需要添加“单击事件到链接”按钮

<asp:LinkButton ID="lnkDoc" runat="server"  onclick="lnkDoc_Click"></asp:linkbutton>
  <asp:LinkButton ID="lnkDoc" runat="server" PostBackUrl="~/Transfer.aspx" onclick="lnkDoc_Click"></asp:linkbutton>


向按钮添加文本并将处理程序公开。

可能需要设置
LinkButton。OnClientClick
属性?让我们为呈现的链接按钮控件指定客户端处理程序。 看一看:

<asp:linkbutton id="LinkButton1" text="Open Web site" onclientclick="Navigate()" onclick="LinkButton1_Click" runat=Server /> 

这里的
Navigate()
是一个在单击时调用的JavaScript函数,
LinkButton1\u-click
是一个服务器端事件处理程序

您希望在用户单击链接时打开新的浏览器窗口以显示文档,对吗?
因此,更好的方法是使用
documentPath
参数(在服务器端设置)创建JavaScript函数。无需为凌乱的
注册表启动脚本
。你现在好像在兜圈子。退一步,重新思考您真正想要代码做什么。

我认为您的页面上有一些验证,因此单击事件不会触发,因此请将LinkButton的causesvalidation=“false”设置为以下代码,然后再次检查:

<asp:LinkButton ID="lnkDoc" causesvalidation="false" runat="server" PostBackUrl="~/Transfer.aspx"></asp:LinkButton
ASPX

<tr>
                <td>
                    <asp:Label ID="lblDoc" runat="server" Text="Document:"></asp:Label>
                </td>
                <td colspan="3">
                    <asp:LinkButton ID="lnkDoc" CausesValidation="false" runat="server" Text="Test"></asp:LinkButton>
                </td>
            </tr>

代码隐藏

    Private Sub lnkDoc_Click(sender As Object, e As System.EventArgs) Handles lnkDoc.Click
         ClientScript.RegisterStartupScript(Me.GetType(), "onclick", "<script language=javascript>alert('hi')</script>")
End Sub
Private Sub lnkDoc_Click(发送方作为对象,e作为System.EventArgs)处理lnkDoc。单击
RegisterStartupScript(Me.GetType(),“onclick”,“alert('hi'))
端接头

我已经解决了这个问题。问题是在HTML中呈现linkbutton(在面板中)。所以我把它放在面板外面的一个盒子里

    </asp:Panel>
    <div>
            <asp:Label ID="lblDoc" style="margin-left: 3px" Text="Document: " runat="server"></asp:Label>
            <asp:LinkButton ID="lnkDoc" style="margin-left:100px" runat="server" PostBackUrl="~/Transfer.aspx"></asp:LinkButton>
        </div>


谢谢大家的建议

您好,它不接受客户端的onclick事件,因为我在服务器端以私有方式访问了该事件。其中是lnkDocI的文本属性,但没有添加该属性。请删除私有修饰符。让它受到保护。然后从linkbutton调用函数。使用Protected也不起作用…“我正在服务器端处理onclick事件”-不,您正在客户端处理它,或者至少您尝试通过设置JS处理程序来执行此操作。嗨,如果我这样做,我会收到此错误。“错误117‘Transfer.Private Sub lnkDoc_Click(发件人作为对象,e作为System.EventArgs)’”在此上下文中不可访问,因为它是‘Private’”我已在回答中添加了页面隐藏文件的代码。请检查它。使lnkDoc_Click方法公开我注意到,在链接按钮代码中,您没有设置按钮的文本属性。其次,您提到了PostBackUrl,它将页面发回到另一个页面。请设置文本属性并删除PostBackUrl属性。你的链接按钮代码应该是它的作品,不幸的是我不能访问Visual Studio现在,但相信我。您可以使用OnClientClick设置参数化的客户端事件处理程序,这就是您真正想要的。