1

我正在使用 ajaxcontroltoolkit 并尝试在选项卡更改事件上调用几个函数。

我想从我的 OnClientActiveTabChanged 函数中调用多个 js 函数但不断收到错误消息

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR      1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET     CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Tue, 24 Nov 2009 12:31:43 UTC


Message: Expected '}'
Line: 202
Char: 181
Code: 0
URI: http://localhost/.../.../....aspx?ID=1000&propertyFrameWidth=1234&propertyFrameHeight=603&userId=9&employeeId=526&CCId=2&DbConnTag=TSDBConnection

更新,我刚刚注意到即使是基本的警报语句也会发生这种情况..

OnClientActiveTabChanged="alert('testone');alert('testtwo');"

给出问题的行:

Sys.Application.add_init(
function() 
{
    $create(AjaxControlToolkit.TabContainer, 
            {
             "activeTabIndex":0, 
             "clientStateField":$get("ctrlJobPropertiesView_tbcTabContainer_ClientState")
            },
            {
             "activeTabChanged":alert('testone');alert('testtwo');
            },
            null, 
            $get("ctrlJobPropertiesView_tbcTabContainer")
        );
});
4

4 回答 4

3

盲拍:尝试将其包装在匿名函数中,例如:

"activeTabChanged":function() { alert('testone');alert('testtwo'); }

编辑:我的解决了这个问题,gs是最完整的。

于 2009-11-24T12:48:05.227 回答
0

尝试使用这个:

function callMultiple() {
   func1();
   func2();
   func3();
}

OnClientActiveTabChanged="callMultiple"
于 2009-11-24T12:52:08.277 回答
0

这是你的问题:

{"activeTabChanged":alert('testone');alert('testtwo');}

我猜你想要的activeTabChanged是一个函数,但alert("something")不返回函数但什么也没有。

字典中的分号在语法上是错误的。您想将功能分配给activeTabChanged

"activeTabChanged":function() { alert("testone"); alert("testtwo"); }

您不需要使用匿名函数。你也可以使用普通的。

function on_activeTabChanged() {
     // do something
}

// much later in the code
$create(AjaxControlToolkit.TabContainer,
        {"activeTabChanged":on_activeTabChanged});
于 2009-11-24T12:55:08.473 回答
0

将它们放在引号中

"activeTabChanged":"alert('testone');alert('testtwo')";
于 2009-11-24T12:55:47.647 回答