如何使用 JavaScript 在 LinkBut​​ton 模式下触发 BulletedList?

发布于 2024-07-07 03:14:02 字数 113 浏览 4 评论 0原文

我在 asp.net 中有一个 BulletedList 设置为 DisplayMode="LinkBut​​ton"。 我想从 javascript 触发第一个“子弹”,可以这样做吗? 如果是这样,怎么办?

I have a BulletedList in asp.net that is set to DisplayMode="LinkButton". I would like to trigger the first "bullet" from a javascript, can this be done? And if so, how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

玩物 2024-07-14 03:14:02

假设您的 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);
}

Say you have the BulletedList as

<asp:BulletedList runat="server" ID="MyLovelyBulletedList" DisplayMode="LinkButton">
    <asp:ListItem Text="My Lovely Text 1" />
    <asp:ListItem Text="My Lovely Text 2" />
</asp:BulletedList>

... then you can fire the "onclick" event like this (cross-browser):

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);
}
黑色毁心梦 2024-07-14 03:14:02

与 Alexander 指出的类似,只是您可以使用 jQuery 来触发事件并依赖它们的跨浏览器支持,而不是自己维护它。

$('#<%= MyLovelyBulletedList.ClientID %>')
    .contents()
    .find('a:first')
    .trigger('click');

Similar to what Alexander indicated except that you could use jQuery to fire the event and depend on their cross-browser support rather than maintain it on your own.

$('#<%= MyLovelyBulletedList.ClientID %>')
    .contents()
    .find('a:first')
    .trigger('click');
徒留西风 2024-07-14 03:14:02

经过大量测试后,似乎唯一依赖的方法是手动触发 __doPostBack-script ,如下所示:

__doPostBack('MyLovelyBulletedList', '0');

所建议的亚历山大·乔舍夫

After a lot of testing it seems the only dependent way to do this is by manually firing the __doPostBack-script like so:

__doPostBack('MyLovelyBulletedList', '0');

as suggested by Alexander Gyoshev

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文