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