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