如何避免回发代码并使用超链接?

时间:2015-02-23 12:44:17

标签: c# asp.net

在开始之前,我应该说我并不真正使用ASPX,我更多地处理样式,我们的开发人员无法帮助我。

对标题感到抱歉,我不知道如何最好地将其标注为问题。


我们有一个网格视图,其中包含一些生成的超链接,这些超链接使用一些回调代码,弹出一个丑陋的窗口,其中包含有关所选项目的一些详细信息。

客户端希望我使用名为FancyBox的JQuery控件,它将更好地显示页面。

我遇到的问题是Fancybox需要一个标准的<a href="...超链接才能使用iframe启动控件。我需要将当前正在生成的令人讨厌的javascript:__doPostBack('gvGridView$ctl04$lnkOrderId','')更改为一个不错的/ClientOwnerDetails.aspx?OrderId=1234&FormId=4321

aspx页面上的代码:

<asp:LinkButton Text='<%# Bind("OrderId") %>' CommandArgument='<%# Bind("FormId") %>' ID="lnkOrderId" runat="server" OnClick="lnkOrderId_Click"></asp:LinkButton>

后面的代码生成此链接:

ClientScript.RegisterStartupScript(typeof(Page), "myscript", "window.open('./ClientOwnerDetails.aspx?OrderId=" + lnk.Text + "&FormId=" + lnk.CommandArgument + "','_blank');", true);

这是我今天需要解决的最后一个常见错误之一。任何帮助指出我正确的方向将不胜感激。

2 个答案:

答案 0 :(得分:3)

如果客户端希望您使用jQuery,请使用jQuery。点击asp.LinkButton并添加您自己的a标记。 asp.LinkButton中的代码显式是服务器端控件。

答案 1 :(得分:3)

而不是asp:LinkButton,您可以执行下面不使用JQuery的操作。

<a href="/ClientOwnerDetails.aspx?OrderId=<%# Eval("OrderId") %>&FormId=<%# Eval("FormId") %>" target="_blank" id="lnkOrderId"><%# Eval("OrderId") %></a>

如前所述,您使用GridView Asp.Net webforms控制{{1}},并且您的客户端要求您使用Jquery,那么您应该使用任何jquery网格(如http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/)并绑定它使用ajax。 在这里发布一个完整的解决方案(很长时间)是不可能的,你必须自己做。