我有一种情况,我不确定是否应该使用HyperLink或LinkButton。当用户点击链接列表时,我想触发点击事件,我将一些信息保存到会话中(应该使用LinkButton),但我也希望这些链接打开新标签(应该使用HyperLink)。
答案 0 :(得分:3)
LinkButton
将postback
,它本质上是一个呈现链接的按钮。您可以在事件处理程序中设置response.redirect(url)
以设置新选项卡。
你能否在处理程序中添加更多关于你想要做什么的信息,也许这可以通过Jquery
调用服务器端方法来实现?
答案 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指向您的服务器,以便您可以存储信息,然后在存储必要的数据后,您将使用重定向将用户指向正确的端点。
示例强>
~/yourpage.aspx?state=NY
,target="_blank"
if (Request.QueryString["state"] != null) Session["state"] = Request.QueryString["state"]
)Response.Redirect("http://www.ny.gov")
)如果数据完全保密,那么您可能希望使用其他答案中指出的LinkButton
方法。打开一个新选项卡很棘手,因此您可能需要写出一些Javascript,如@andleer的回答所述,因为我不相信有一种简单的方法可以从服务器端弹出一个新窗口。
答案 3 :(得分:1)
您需要使用LinkButton
。
两者之间的区别在于LinkButton
将您的页面回发到服务器,允许您在HyperLink
不回发时创建逻辑 - 只需将您重定向到指定的链接,因此,使用{{ 1}}当你想要导航时。
答案 4 :(得分:1)
LinkButton控件用于创建超链接按钮。此控件看起来像HyperLink控件,但具有与Button控件相同的功能。 使用LinkButton,您还可以获得Web控制标准属性和控制标准属性的功能。
答案 5 :(得分:0)
你是对的,不能两者兼顾,因为LinkButton会触发回发,而超链接只会导航到新的页面。
在您使用的情况下,您可以使用LinkButton,服务器代码必须进行重定向(如果您想导航到另一个页面)或处理选项卡并返回打开Tab的页面如果您使用的是标签元素。 (因此标签导航不会在前端完成)
答案 6 :(得分:-1)
在这种情况下,您可以使用按钮保存一些信息,也可以将其用作类似选项。但是,如果你想添加一个链接,那么你必须使用超链接..你也可以使用javascript链接一个网址与按钮,以便当用户点击该按钮时,会话信息将被存储,然后他将重定向到新的网页。