DateTime -> Textbox (jquery!) -> EditorFor (DateTime.ascx) -> добавить событие javascript.Как? - PullRequest
1 голос
/ 25 августа 2010

Я определил это DateTime.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%: Html.TextBox(   string.Empty, 
                    (Model.HasValue ? Model.Value.ToString("dd.MM.yyyy") : string.Empty), 
                    new {   @class = "whatever"

                        }
                 )%>

и aspx site выглядит так:

<%: Html.EditorFor(model => model.Data.birthday) %>

Идея сейчасчто функция javascript "ABC ()" вызывается, когда текстовое поле теряет фокус (означает событие "onBlur") (в идеале: значение trextbox передается вызываемой функции "ABC (birtday.value)") Но яне хотел бы изменять DateTime.ascx , чтобы в итоге для ALL (!) EditorFor (для Datetime) был вызов функции javascript!

Мои попытки: Это

<%: Html.EditorFor(model => model.Data.birthday, "onBlur='javascript:ABC();'", "birthday") %>

приводит к

<input class="whatever" id="birthday" name="birthday" type="text" value="25.08.2010" />

, но вызов функции onBlur / javascript not set.

And

<%: Html.EditorFor(model => model.Data.birthday, new { onClick="javascript:ShowHideC1();"} ) %>

тоже не работает.

(Следующим шагом будет то, что это текстовое поле "конечно", средство выбора даты jquery; -)

Ответы [ 3 ]

2 голосов
/ 25 августа 2010

Да, глупо отвечать на собственный вопрос, но я хочу поделиться своим известным знанием.; -)

Решение:

НЕ используйте Html.EditorFor!

используйте TextBoxesFor!

<%: Html.TextBoxFor(model => model.Data.birthday, new { onBlur="javascript:ABC();"} )%>

Использование средств TextBoxForчто DateTime.ascx НЕ используется.Когда для «... birthday» в Контроллере установлено ненулевое значение, вывод не форматируется, как в DateTime.ascx.Означает также, что часы, минуты и время будут отображаться.Но OnBlur - событие добавлено!И это была цель!

1 голос
/ 09 декабря 2011

Вы можете использовать Html.EditorFor, но вам придется связывать события отдельно:

$(document).ready(function () {
 // bind events to template editors
 $("#Data_birthday").bind('blur', ABC);
 $("#Data_birthday").bind('click', ShowHideC1);
}
1 голос
/ 25 августа 2010

Может быть, это может помочь вам:

Шаблон редактора MVC 2 с DateTime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...