2

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

            <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)' 在此上下文中不可访问,因为它是“私有的”。

4

8 回答 8

2

I have fixed the issue. The problem was with rendering the linkbutton in HTML(which was inside a panel). So I placed it in a outside the 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>

Thanks all for your suggestions..!

于 2013-06-07T10:22:33.307 回答
2

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

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

谢谢, 海特什

于 2013-06-07T06:56:57.133 回答
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
于 2013-06-07T08:11:05.070 回答
0

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

于 2013-06-07T05:53:44.680 回答
0

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

我希望这样会起作用

于 2013-06-07T05:10:26.687 回答
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
于 2013-06-07T05:12:24.773 回答
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>
于 2013-06-07T05:40:39.787 回答
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。你现在似乎在绕圈子跑。退后一步,重新思考你真正希望你的代码做什么。

于 2013-06-07T05:59:52.693 回答