Как показать подробный вид в диалоге jquery после выбора записи в gridview (все на той же странице) - PullRequest
0 голосов
/ 27 марта 2012

У меня есть страница веб-форм, которая имеет 2 элемента управления.Вид сетки и связанный список.

Когда я выбираю запись в виде сетки, страница отправляется назад, и я вижу детали линии сетки в виде списка, которая расположена под сеткой.

Теперь я хочуперенести просмотр списка в элемент управления диалогового окна jquery.

Я пытался найти надежный способ сделать это, но я запутался.в тот момент, когда диалоговое окно кажется закрытым, очевидно, потому что postbaxk происходит для того, чтобы загрузить подробное представление ..

Любые предложения?

Должен ли я удалить список просмотра на отдельной странице, а затем вызватьстраница из сетки внутри диалогового окна jquery?(как?)

Есть ли способ вызвать просмотр списка и показать его в диалоговом окне вместо того, чтобы показывать его под гри?

Спасибо

Обновление 1: попробовал нескольковещи.Создал скрытое поле, которое я обновляю на основе кликов с элементов управления.Если значение поля попадает в значение, которое я определяю, тогда я загружаю диалог на page_load, если нет, то оно не отображается.это работает, но у меня проблема с редактированием / вставкой в ​​виде списка в диалоговом окне ... кажется, что это не работает ...

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

То, что я нашел для работы, это:

if ($("#cphMain_HiddenField1").val() == "dlg") {
    $("#divTodo_Details").dialog({ show: 'fade', hide: 'fade', autoOpen: true, modal: true, title: "Details", width: 1024 });
}
//
$(".showdetails").click(function () {
    $("#cphMain_HiddenField1").val("dlg");
});
//
$(".NOshowdetails").click(function () {
    $("#cphMain_HiddenField1").val("");
});

В моей разметке aspx я даю классу showdetails и NOshowdetails любые элементы управления, которые я хочу, поэтому во время обратной передачи диалоговое окно появляется только на элементах управления, которые я хочу.

p.s. у меня также есть скрытое поле для хранения значения, которое я проверяю на page_load.

0 голосов
/ 28 марта 2012

Поскольку после загрузки подробностей в просмотре списка требуется обратная передача, во время обратной передачи вам нужно выплевывать код javascript, который поместит просмотр списка в диалоговое окно jquery.

Одним из способов является это:

<div id="dialogHolder"><!-- this is just a div enclosing the listview -->
    <asp:listview runat="server"...
</div>

Теперь, когда вы выполняете обратную передачу, чтобы заполнить представление списка деталями, сделайте следующее:

private void populateListView()//
{
     //code to populate listview above
     Page.ClientScript.RegisterStartupScript(this.GetType(),"dialogscript","$('#dialogHolder').dialog('open');",true);       
}
...