我的问题与this类似,但答案对我不起作用,因为链接按钮的行为与正常的排序标题不同。
我们的网站使用Server.Transfer
隐藏唯一网址下的不同网页访问权限。单击asp:LinkButton
将显示首页,而不仅仅是排序网格视图。
查看客户端页面代码时,我发现正常列标题的工具提示看起来像
javascript:__doPostBack("(grid view control id)","Sort$(field name)");
并且在使用LinkButton的自定义标题模板的列上,它是
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
"(link button control id)", "", true, "", "", false,true);
我认为不同之处在于原因。
如何使它们表现相同?
更新
我注意到,对于asp:Button
而不是链接按钮,javascript点击事件会调用
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
"(button control id)", "", true, "", "", false, false);
它没有通往头版。
所以看起来我只需要设置,以便链接按钮不会进行客户端提交。但是最好的方法是什么?
答案 0 :(得分:0)
使用以下技巧,我实现了这一点。由于它是一种黑客攻击,我仍然愿意看到更好的解决方法。
<asp:LinkButton href="javascript:void(0);"
OnClientClick="javascript:__doPostBack(this.id.replace(/_/g,'$'),'');" ...
会阻止提交,因此不会切换到首页。它首先设置href
属性,使其不会导致任何位置,然后在OnClientClick
中触发LinkButton
的回调事件。
它解决了我的问题,但它取决于ASP.NET生成ID和事件目标标识符的实现细节。有没有更好的解决方案?