4

我有一种情况,我不确定是否应该使用 HyperLink 或 LinkBut​​ton。当用户单击链接列表时,我想触发一个单击事件,在该事件中我将一些信息保存到会话中(应该使用 LinkBut​​ton),但我也希望这些链接打开新选项卡(应该使用 HyperLink)。

4

7 回答 7

3

您将需要使用LinkButton导致 PostBack 的 a。要打开其他选项卡,请发出 JavaScript。

protected void MyLinkButton_Click(object sender, EventArgs e)
{
    Session["MyData"] = 123;

    Page.ClientScript.RegisterStartupScript(Page.GetType(),
            "newWindow",
            "window.open('http://myurl','_blank');",
            true);
}
于 2013-10-17T21:37:59.947 回答
3

A LinkButtonwill postback,它本质上是一个像链接一样呈现的按钮。您可以response.redirect(url)在事件处理程序中设置 a 以设置新选项卡。

您能否添加更多信息,您想在处理程序中做什么,也许这可以通过Jquery调用服务器端方法来实现?

超链接和链接按钮之间的区别

Click Api with JqueryJquery post

于 2013-10-17T21:15:03.107 回答
2

我会说一个超链接,它点击特定的 URL 来存储必要的会话数据,然后Response.Redirect在存储信息后用于重定向到下一页。

HyperLink 的 URL 将指向您的服务器,以便您可以存储信息,然后在存储必要的数据后,您将使用重定向将用户指向正确的端点。

例子

  1. HyperLink 的 URL 指向~/yourpage.aspx?state=NY, 与target="_blank"
  2. 服务器响应 URL 并检查查询字符串。
  3. 如果查询字符串存在,则存储数据 ( if (Request.QueryString["state"] != null) Session["state"] = Request.QueryString["state"])
  4. 将用户重定向到适当的 URL ( Response.Redirect("http://www.ny.gov"))

如果数据完全保密,那么您将需要使用LinkButton其他答案中指出的方法。打开一个新选项卡很棘手,因此您可能必须写出@andleer 的答案中概述的一些Javascript,因为我不相信有一种简单的方法可以从服务器端弹出一个新窗口。

于 2013-10-23T02:10:13.087 回答
1

LinkBut​​ton 控件用于创建超链接按钮。此控件看起来像 HyperLink 控件,但具有与 Button 控件相同的功能。使用 LinkBut​​ton 您还可以获得 Web Control Standard Properties 和 Control Standard Properties 的功能。

于 2013-10-17T21:20:02.063 回答
1

你需要使用LinkButton.

两者之间的区别在于,将LinkButton您的页面回发到服务器,允许您在HyperLink不回发的情况下制定逻辑 - 只是将您重定向到指定的链接,因此,HyperLink在您想要导航时使用。

于 2013-10-17T21:14:15.447 回答
0

你是对的,不能两者都做,因为 LinkBut​​ton 会触发回发,而超链接只会导航到新页面。

在您的情况下,您可以使用 LinkBut​​ton 并且服务器代码必须执行重定向(如果您想导航到另一个页面)或处理选项卡并返回打开选项卡的页面(如果您使用的是选项卡元素)。(所以标签导航不会在前端完成)

于 2013-10-17T21:16:58.303 回答
-1

在这种情况下,您可以使用按钮来保存一些信息,也可以将其用作类似选项。但是如果你想添加一个链接,那么你必须使用超链接。你也可以使用 javascript 将一个 url 链接到按钮,这样当用户单击该按钮时,会话信息将被存储,然后他将重定向到新的网页。

于 2013-10-17T21:18:23.763 回答