为什么有人在导航中使用Button而不是LinkBut​​ton控件

时间:2008-11-14 15:39:22

标签: c# .net web-applications

我正在从另一个国家的自由撰稿人.Net开发者编写的应用程序中重新编写一些ui。

我不会深入研究代码的错误,并将代码与结构内容和演示文稿纠缠在一起......

但我注意到的一件事是用于访问应用程序部分的菜单是使用发布到服务器并返回不同页面的Button控件。我想将按钮更改为LinkControls有没有人可能会这样做的原因?

我注意到当我更改为LinkBut​​tons时,实际上javascript似乎会触发post动作。有什么理由或方法可以避免这种情况吗?

5 个答案:

答案 0 :(得分:2)

您可以将按钮重新设置为看起来像链接,然后您可以维护任何服务器端代码,而不必像LinkBut​​ton那样依赖于javascript。

.linkButton
{
   background-color: transparent;
   border-style: none;
   color: /* Something nice */
   cursor: pointer;
   text-align: left;
   text-decoration: underline;
   display: table-cell;
}

当然如果这些按钮只是用于导航而没有任何服务器端逻辑,那么好的旧HTML链接就可以了......

答案 1 :(得分:0)

一个LinkBut​​ton就是这样 - 一个带有javascript的锚标签,用于提交页面的表单。如果您不想要这种行为,请不要使用链接按钮。只需使用标准的锚标签。

我过去曾使用过LinkBut​​tons,因为它是一种非常简单的方法,可以将按钮的行为与常规html链接的样式合并。 Noobs也可能会使用它们,因为它是一种创建链接的简单方法,但它们还不是更清楚。

答案 2 :(得分:0)

如果你想要的只是锚点,其属性可以在服务器端操作,而不是回发到服务器,那么使用HyperLink控件。如果要将点击发回服务器,请使用LinkBut​​ton控件。

答案 3 :(得分:0)

如果你计划使用Ajax很多Ajax解决方案,请记住LinkBut​​ton的一件事就是在LinkBut​​ton的OnClick事件上插入javascript,这不是链接的有效事件。有些浏览器会处理代码,例如Internet Explorer,而其他浏览器会忽略它,例如Firefox。

答案 4 :(得分:0)

您问什么是链接控件:

简单而简单的Link控件显示用作服务器端表单处理的超链接的文本。超链接可以在同一个ASP.NET网页或任何其他URL上引导另一个表单。

链接控件必须放在窗体或面板控件中,或放在控件的模板中。在Text属性中输入链接的文本。使用NavigateUrl属性指定链接的目标URL。

使用数据绑定,您可以动态提供Link控件的属性。因此,它在特定场景下具有很强的可扩展性,直到运行时才能确定。