关于LinkButton的PostBackUrl属性的一点疑惑

本文探讨了ASP.NET中通过LinkButton实现页面间数据传递的问题。解析了PostBackUrl属性的工作原理,并提供了一种解决连续点击两次才能跳转问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在制作网站是经常需要在两个页面之间交换数据并跳转,有时候需要使用动态的跳转来实现,比如在Main.aspx :

<asp:TextBox runat = "Server" ID = "txt" ></asp:TextBox> <asp:LinkButton runat = "Server" ID = "button" onclick="Click" >Search</asp:LinkButton>

如何得到txt中的值,然后将txt中的值发送到Search.aspx中呢?

最初认为这个问题很简单,只要在后台代码中设置PostBackUrl就可以实现,但是试着写了之后结果是不行的,出现的

现象是需要单击两次才能跳转到Url设定的页面中。

google如下:

http://social.microsoft.com/Forums/en-US/295/thread/74baa0d7-763b-4a1d-b71b-3c88f4e1d18c

PostBackUrl只是LikButton的属性它不是方法它不会执行操作,它在LinkButton发生Click事件时,系统自动从PostBackUrl属性读取Url并以此Url重定向,,所以执行重定向的是Click事件指向的方法。当然该语句是封装在LinkButton类内的我们看不到,估计是从Button类继承来的。现在就可是说明为什么你要连续点击两次才能导航到指定页面,当你第一次点击时LinkButton的PostBackUrl值是“/”所以重定向到原页面,但因为发生了Click事件所以会执行“imb.PostBackUrl = "z.aspx"; ”语句,此时PostBackUrl值是“z.aspx”,然后当你第二次点击时就会重定向到“z.aspx”。

要解决此问题就要在GridView初始化数据时给LinkButton的PostBackUrl属性一个初始值。

解决方法:

http://ask.wangmeng.cn/question/2899

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { int y = e.Y; if (y > 200) { Response.Redirect("<a href="http://www.sohu.com" mce_href="http://www.sohu.com" target="_blank">http://www.sohu.com</a>"); } else { Response.Redirect("<a href="http://www.sina.com" mce_href="http://www.sina.com" target="_blank">http://www.sina.com</a>"); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值