【发布时间】:2008-10-08 13:00:35
【问题描述】:
我在 asp.net 中有一个 BulletedList,它设置为 DisplayMode="LinkButton"。我想从 javascript 触发第一个“子弹”,可以这样做吗?如果有,怎么做?
【问题讨论】:
标签: c# asp.net javascript bulletedlist
我在 asp.net 中有一个 BulletedList,它设置为 DisplayMode="LinkButton"。我想从 javascript 触发第一个“子弹”,可以这样做吗?如果有,怎么做?
【问题讨论】:
标签: c# asp.net javascript bulletedlist
假设你有 BulletedList
<asp:BulletedList runat="server" ID="MyLovelyBulletedList" DisplayMode="LinkButton">
<asp:ListItem Text="My Lovely Text 1" />
<asp:ListItem Text="My Lovely Text 2" />
</asp:BulletedList>
...然后您可以像这样触发“onclick”事件(跨浏览器):
var links = document.getElementById('<%= MyLovelyBulletedList.ClientID %>').getElementsByTagName('a');
var targetLink = links[0];
if (targetLink.fireEvent)
{
// IE
targetLink.fireEvent("onclick");
}
else if (targetLink.dispatchEvent)
{
// W3C
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
targetLink.dispatchEvent(evt);
}
【讨论】:
与 Alexander 指出的类似,只是您可以使用 jQuery 来触发事件并依赖它们的跨浏览器支持,而不是自己维护它。
$('#<%= MyLovelyBulletedList.ClientID %>')
.contents()
.find('a:first')
.trigger('click');
【讨论】:
经过大量测试,似乎唯一的依赖方法是手动触发 __doPostBack 脚本,如下所示:
__doPostBack('MyLovelyBulletedList', '0');
按照Alexander Gyoshev的建议
【讨论】: