ASP.Net:可以将onload事件应用于控件

时间:2010-01-12 22:15:03

标签: javascript asp.net-mvc

我有一些像这样的代码:

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都适用于视图中的各个数据项而不是整个视图本身。

2 个答案:

答案 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.');
                    }                            
                 <% } %>
             <% } %>