Как мне запустить BulletedList в LinkButton-режиме с помощью JavaScript? - PullRequest
2 голосов
/ 08 октября 2008

У меня есть BulletedList в asp.net, который установлен в DisplayMode = "LinkButton". Я хотел бы вызвать первую «пулю» из JavaScript, это можно сделать? И если да, то как?

Ответы [ 3 ]

3 голосов
/ 09 октября 2008

Аналогично тому, что указал Александр, за исключением того, что вы можете использовать jQuery для запуска события и зависеть от их кросс-браузерной поддержки, а не поддерживать его самостоятельно.

$('#<%= MyLovelyBulletedList.ClientID %>')
    .contents()
    .find('a:first')
    .trigger('click');
3 голосов
/ 08 октября 2008

Скажем, у вас есть 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);
}
1 голос
/ 05 февраля 2009

После многих испытаний кажется, что единственный зависимый способ сделать это - вручную запустить скрипт __doPostBack, например:

__doPostBack('MyLovelyBulletedList', '0');

как предложено Александр Гёшев

...