>我有一个链接按钮显示上传文档的路径。标签结构是这样的
<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(' 在此上下文中无法访问,因为它是"Private"。
我认为您的页面上有一些验证,因此单击事件不会触发,因此请将 LinkButton 的 causesvalidation="false" 设置为以下代码并再次检查:
<asp:LinkButton ID="lnkDoc" causesvalidation="false" runat="server" PostBackUrl="~/Transfer.aspx"></asp:LinkButton
谢谢海特什
我已经解决了这个问题。问题在于在 HTML(在面板内(中呈现链接按钮。所以我把它放在面板外面。
</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>
谢谢大家的建议..!
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
尝试在页面上给出onclick事件.aspx并检查它。
我希望这样它会起作用
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>
向按钮添加文本并使处理程序公开。
您需要将单击事件添加到链接按钮。
<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
也许你想设置LinkButton.OnClientClick
属性?它允许您为呈现的链接按钮控件指定客户端处理程序。看一看:
<asp:linkbutton id="LinkButton1" text="Open Web site" onclientclick="Navigate()" onclick="LinkButton1_Click" runat=Server />
这里Navigate()
是一个在单击时调用的 JavaScript 函数,LinkButton1_Click
是一个服务器端事件处理程序。
您想打开一个新的浏览器窗口以在用户单击链接时显示文档,对吗?因此,更好的方法是使用documentPath
参数(在服务器端设置(创建JavaScript函数。无需凌乱RegisterStartupScript
.你现在似乎在兜圈子。退后一步,重新思考你真正希望代码做什么。