1

我现在是 jQuery 新手,我正在使用 Telerik asp.net MVC 控件和 Razor 视图引擎。这是我认为的代码片段。

    Html.Telerik().ComboBox().Name("cmb")                
    .AutoFill(true)
    .DataBinding(binding => binding.Ajax().Select("_loadData", "MyController").Cache(false))
    .ClientEvents(ce => ce.OnLoad("cmbLoaded"))

    function cmbLoaded(e) {            
        var ComboBox = $("#cmb").data("tComboBox");
        //do stuff here
    }

好的,这就是我想要做的我想向 Telerik Combobox 事件发送额外的参数,比如 cmbLoaded 事件处理程序。我怎样才能做到这一点。

提前致谢。

4

3 回答 3

3

已经有一段时间了,但遇到了类似的情况。作为参数传递给 OnLoad 事件的字符串是 Javascript 函数引用,因此您可以传递如下内容:

.ClientEvents(ce => ce.OnLoad("function(e) { cmbLoaded.call(this,e," + Model.Id + "); }"))

然后您的 Javascript 函数签名将更改为:

function cmbLoaded(e, id)
于 2013-04-23T22:39:29.423 回答
2

当您的组合从服务器获取数据时,您想提交额外的参数吗?然后您可以在OnDataBinding事件的帮助下发送它。例如:

function onComboBoxDataBinding(e){
 e.data={extraParameter:"Cool"};
}

于 2012-04-04T13:53:10.427 回答
0

您可以通过在代码块中定义一些变量来做到这一点,然后在您的 javascript 事件处理程序中使用它们。这是一个例子:

@{
   string myPar1 = "some text";
   int myPar2 = 10;
}

<script type="text/javascript">

function cmbLoaded(e, '@myPar1' @myPar2) {            
        var ComboBox = $("#cmb").data("tComboBox");
        //do stuff here
    }

</sciprt>
于 2012-04-21T00:46:43.090 回答