无法单击asp链接按钮

时间:2013-06-07 04:53:54

标签: asp.net linkbutton

我有一个显示上传文档路径的链接按钮。标签结构就像这样

            <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

但我无法点击文档路径。当我将鼠标悬停在链接按钮上时,没有任何反应。可能是什么问题?

修改: 当我尝试在客户端添加onclick时,我收到以下错误。

Transfer.Private Sub lnkDoc_Click(sender As Object,e As System.EventArgs)'在此上下文中无法访问,因为它是“私有”。

8 个答案:

答案 0 :(得分:2)

我认为您的网页上有一些验证,因此点击事件不会触发,因此请将LinkBut​​ton的causevalidation =“false”设置为以下代码并再次检查:

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

谢谢, 亚太区首席技术官Matt

答案 1 :(得分:2)

我已经解决了这个问题。问题是在HTML中呈现链接按钮(在面板内)。所以我把它放在了Panel的外面。

    </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>

感谢大家的建议..!

答案 2 :(得分:1)

<强> 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

答案 3 :(得分:0)

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

我希望它会起作用

答案 4 :(得分:0)

您需要将点击事件添加到链接按钮。

<asp:LinkButton ID="lnkDoc" runat="server"  onclick="lnkDoc_Click"></asp:linkbutton>

你必须写文件后面的文件

 Protected Sub lnkDoc_Click((ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkDoc.Click
        // code you want to run
    End Sub

答案 5 :(得分:0)

Protected 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

注意:让您的活动受保护而不是隐私

此外,您还需要将点击事件添加到链接按钮。

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

也许你想设置LinkButton.OnClientClick属性?它允许您为渲染链接按钮控件指定客户端处理程序。 看看:

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

此处Navigate()是一个在单击时调用的JavaScript函数,LinkButton1_Click是服务器端事件处理程序。

您想要打开一个新的浏览器窗口,以便在用户点击链接时显示文档,对吧? 因此,更好的方法是使用documentPath参数创建JavaScript函数(在服务器端设置)。不需要凌乱RegisterStartupScript。你好像现在在圈子里跑。退后一步,重新考虑您真正希望代码执行的操作。