【问题标题】:Using a PostBack on a LinkButton in ASP.NET在 ASP.NET 中的 LinkBut​​ton 上使用 PostBack
【发布时间】:2011-08-16 21:38:43
【问题描述】:

我的 searchresults.aspx 页面中有一个 .ascx 控件:

 <asp:LinkButton id="LinkButton1"
       Text="Click Me" 
       Font-Names="Verdana" 
       Font-Size="14pt" PostBackUrl="~/searchresults.aspx?type=topics"  
       runat="server"/>

但是当我点击它时,它会回发但 type=topics 似乎没有被发送。有什么建议吗?

【问题讨论】:

  • 我想我刚刚读到它使用 Request.Form 而不是 QueryString,让我检查一下
  • 不,仍然无法正常工作
  • 为什么不使用按钮?为什么一定是LinkBut​​ton?

标签: c# asp.net user-controls postback


【解决方案1】:

试试HyperLink 导航到另一个页面:

<asp:HyperLink NavigateUrl="~/searchresults.aspx?type=topics" />

来自 MSDN:

超链接 显示指向另一个网页的链接的控件。

LinkButton课堂页面上:

如果您想在单击控件时链接到另一个网页, 考虑使用 HyperLink 控件。

编辑:对 cme​​ts 的回答

  • LinkButton 中删除PostBackUrl
  • 添加&lt;asp:LinkButton OnClick="OnTopicsTypesEnabled" ... /&gt;
  • 在代码后面 (searchresults.aspx.cs)

 protected void OnTopicsTypesEnabled(object sender, EventArgs args)
 {
    // handle this particular case
 }

【讨论】:

  • 超链接如果有回发就可以了,我不想要整页请求
  • @chris : 你的意思是整页请求?
  • 我的意思是刷新,回发只对页面进行部分刷新..我不想完全链接到另一个页面
  • @chris : 你能给我一个关于回发时部分刷新的描述链接吗?真的很有趣
  • 查看文档,LinkBut​​ton.PostBackUrl 会 **Post Back 到自身或其他页面:msdn.microsoft.com/en-us/library/…
【解决方案2】:

我相信您的代码会执行 POST,而您需要 GET 来通过 QueryString 传输变量。

【讨论】:

  • 如果它发布一个帖子,它不会抓取查询字符串,因为它不是 GET,那么我如何使用链接按钮传递数据?
  • 根据应用程序的结构,您可以将表单上的方法更改为 GET。您的另一个选择是为 LinkBut​​ton 添加一个点击事件,并重定向到 URL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
相关资源
最近更新 更多