ASP.Net: может ли событие onload применяться к элементу управления - PullRequest
1 голос
/ 13 января 2010

У меня есть такой код:

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 ]

2 голосов
/ 13 января 2010

Почему бы вам не добавить код JavaScript к вашему виду, например (jQuery)

$(document).ready(function() { /* process items in your dropdownlist */ });

MVC не имеет некоторого хука для события onLoad элемента управления. Вы присоединяете свои события JavaScript к событию document.ready, а не к объекту.

0 голосов
/ 13 января 2010

После некоторых проб и ошибок я собрал следующий код:

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.');
                    }                            
                 <% } %>
             <% } %>    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...