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

时间:2008-10-08 13:00:35

标签: c# asp.net javascript bulletedlist

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

3 个答案:

答案 0 :(得分:3)

假设您将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 :(得分:3)

类似于Alexander所说的,除了你可以使用jQuery来激活事件并依赖于他们的跨浏览器支持而不是自己维护它。

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

答案 2 :(得分:1)

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

__doPostBack('MyLovelyBulletedList', '0');

根据Alexander Gyoshev

的建议