просто быстрый вопрос об инфраструктуре MVC JqueryUI,
У меня есть страница _layout.cshtml, которая инициализирует набор вкладок
У меня есть представление, в котором есть указатель даты jqueryUI.
Представление загружается динамически во вкладки и отображается, но если я загружаю последующий экземпляр представления на вкладках, средство выбора даты будет заполнять только первый экземпляр средства выбора даты.
myвопрос в этом
1. MVC использует независимые объекты для создания независимых представлений с теми же идентификаторами, что и в представлениях
2. JQueryUI использует XML Dom с уникальными идентификаторами для создания своих базовых объектов
, поэтому какони должны работать вместе.Мой вид выглядит следующим образом:
<div class="PoCreate">
<div id="pnlProject">
<fieldset>
<legend>Project</legend>
<label for="ProjectNo">
Project #:
</label>
<input type="text" name="ProjectNo" id="ProjectNo" />
<input type="button" name="btnProjectNo" id="btnProjectNo" data-linked-search="@Url.Action("Project", "SearchObj")"
value=".." />
</fieldset>
</div>
</div>
@Url.Script("~/scripts/PageScripts/_PoIndex.js")
Файл сценария содержит
$('.PoCreate').PoCreate({});
, а функция PO содержит
$.fn.extend({
PoCreate: function (opt)
{
$(this).each(function ()
{
var _self = $(this.parentNode),
_opts = {}, tabIdContext = $(this.parentNode).attr('id');
$.extend(_opts, (opt || {}));
$('.date', _self).each(function ()
{
$(this).attr('id', tabIdContext + '-' + $(this).attr('id'));
$(this).datepicker(Globals.Dates).keypress(function (e) { return false; });
})
$(':button').button().filter('[data-linked-search]').click(function (e)
{
$.extendedAjax({ url: $(this).attr('data-linked-search'),
success: function (response)
{
$('#dialog-form').find('#dialog-search').html(response).dialog(Globals.Dialogs);
}
});
});
});
}
});