LinkBut​​ton或HyperLink?

时间:2013-10-17 21:09:20

标签: c# html asp.net

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

7 个答案:

答案 0 :(得分:3)

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

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

Difference between Hyperlink and LinkButton

Click Api with JqueryJquery post

答案 1 :(得分:3)

您需要使用导致PostBack的LinkButton。要打开其他标签,请发出JavaScript。

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

    Page.ClientScript.RegisterStartupScript(Page.GetType(),
            "newWindow",
            "window.open('http://myurl','_blank');",
            true);
}

答案 2 :(得分:2)

我想说一个HyperLink会命中一个特定的URL来存储必要的会话数据,然后在存储信息后使用Response.Redirect重定向到下一页。

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

示例

  1. HyperLink的网址指向~/yourpage.aspx?state=NYtarget="_blank"
  2. 服务器响应URL并检查查询字符串。
  3. 如果查询字符串存在,则存储数据(if (Request.QueryString["state"] != null) Session["state"] = Request.QueryString["state"]
  4. 将用户重定向到相应的网址(Response.Redirect("http://www.ny.gov")
  5. 如果数据完全保密,那么您可能希望使用其他答案中指出的LinkButton方法。打开一个新选项卡很棘手,因此您可能需要写出一些Javascript,如@andleer的回答所述,因为我不相信有一种简单的方法可以从服务器端弹出一个新窗口。

答案 3 :(得分:1)

您需要使用LinkButton

两者之间的区别在于LinkButton将您的页面回发到服务器,允许您在HyperLink不回发时创建逻辑 - 只需将您重定向到指定的链接,因此,使用{{ 1}}当你想要导航时。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:-1)

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