有没有办法以编程方式点击链接,以便它具有与用户点击它相同的效果?
示例:
我有一个ASP.NET LinkButton:
<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass">Export</asp:LinkButton>
我在侧边栏上有一个链接,指向.aspx页面上有这个链接按钮。由于各种原因,我不能在页面刷新之前执行LinkButton的代码 - 所以我正在寻找一种方法在页面完全加载后强制单击我的代码中的LinkButton。有一种简单/可行的方法来实现这一目标吗?如果涉及触发事件,请提供代码示例(如果可以)。感谢。
答案 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);