ASP.NET 2.0 - 需要以编程方式单击链接

时间:2009-04-01 17:49:49

标签: c# asp.net hyperlink

有没有办法以编程方式点击链接,以便它具有与用户点击它相同的效果?

示例:

我有一个ASP.NET LinkBut​​ton:

<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass">Export</asp:LinkButton>

我在侧边栏上有一个链接,指向.aspx页面上有这个链接按钮。由于各种原因,我不能在页面刷新之前执行LinkBut​​ton的代码 - 所以我正在寻找一种方法在页面完全加载后强制单击我的代码中的LinkBut​​ton。有一种简单/可行的方法来实现这一目标吗?如果涉及触发事件,请提供代码示例(如果可以)。感谢。

6 个答案:

答案 0 :(得分:1)

在链接上以编程方式触发点击事件将触发“onclick”事件,但不会触发默认操作(href)。

由于链接按钮以hrefs形式出现,因此您可以尝试使用Javascript。

var lnkExport = document.getElementById('<%= lnkExport.ClientID %>');
if(lnkExport){
   window.location = lnkExport.href;
}

答案 1 :(得分:1)

我当然认为,有一个设计和实施缺陷迫使你按照你的描述得出结论。

好吧,调用click事件只不过是执行事件注册方法。

所以,我能想到的最糟糕的建议是,只需调用函数,你想在什么时候发生点击事件,

lnkExport_Click(lnkExport,new EventArgs());

答案 2 :(得分:0)

如果您只是想以编程方式单击该链接,我不确定您为什么需要加载页面。我建议在服务器端使用Response.Redirect()将它们重定向到该页面。不确定是否还有其他减速原因这种简单的方法不起作用......

- 亚光

答案 3 :(得分:0)

<button onclick="document.getElementById('<%=this.lnkExport.ClienID%>').click()">
 click me</button>

答案 4 :(得分:0)

如果我明白你在说什么:

<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass" onclick="lnkExport_Click">Export</asp:LinkButton>

然后在你的代码隐藏中,或者当你需要时调用以下内容......

lnkExport_Click( null, null );

并确保你已经连接了lnkExport_Click。

protected void lnkExport_Click( object sender, EventArgs e )
{
//DO Whatever here
}

答案 5 :(得分:0)

Rashack的帖子节目是如何做到的。你可以在javascript中完成。


function ClickLink() {
  document.getElementById('').click();
}

如果您希望在其他事件之后触发此事件,则可以在c#中添加代码,以便在页面加载时在客户端添加对该函数的调用。


Page.ClientScript.RegisterStartupScript(
  this.getType(), 
  "clickLink", 
  "ClickLink();",
  true);