如何为Telerik MVC [JQuery]事件处理程序发送附加参数

时间:2012-04-04 13:12:38

标签: javascript jquery asp.net-mvc jquery-ui telerik-mvc

我现在是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事件处理程序。我怎样才能做到这一点。

提前谢谢。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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

function cmbLoaded(e, id)

答案 2 :(得分: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>