我有一些像这样的代码:
return helper.DropDownList(data.ModelEntityId.ToString(), selectList, null, new { onchange = onChange });
onChange变量可以是空的,或从某些元数据加载。这有效,但我也想将javascript函数应用于该控件的onload事件。
有没有办法将onload事件应用于控件?我已尝试过以下内容,即使没有错误,也无效。
return helper.DropDownList(data.ModelEntityId.ToString(), selectList, null, new { onchange = onChange, onload = onChange });
谷歌搜索我只能找到适用于整个视图的onload事件的引用。这对我来说不起作用,因为我调用的任何javascript都适用于视图中的各个数据项而不是整个视图本身。
答案 0 :(得分:2)
为什么不将javascript代码添加到您的视图中,如(jQuery)
$(document).ready(function() { /* process items in your dropdownlist */ });
MVC对控件的onLoad事件没有一些钩子。您将javascript事件附加到document.ready事件,而不是对象。
答案 1 :(得分:0)
经过一些试验和错误后,我将以下代码放在一起:
function pageLoad() {
var script;
<%foreach(var item in Model.Record) { %>
<%if (item.Value.ModelEntity.ModelItem.ModelCustomOnChange != null) { %>
script = <%=item.Value.ModelEntity.ModelItem.ModelCustomOnChange.OnChangeScript%>;
if (eval('typeof(' + script + ')') == 'function') {
eval(script + '("' + parm1 + '", "' + parm2 + '");');
}
else {
alert('JavaScript function "' + script + '" could not be found. No attempt was made to call the function.');
}
<% } %>
<% } %>