super_user Ответов: 1

Всплывающее окно и вид сетки на одной кнопке


Я пытаюсь вызвать gridview и всплываю на одном щелчке кнопки

выскакивать

Что я уже пробовал:

<script type="text/javascript">
  $(function () {
      $("#divcontainer").dialog({
          modal: true,
          autoOpen: false,
          title: "Chart",
          width: 600,
          height: 450
      });
      $("#search_data").click(function () {
          $("#divcontainer").dialog('open');
      });
  });

кнопка

<input type="button" ID="search_data"    runat="server" 

class="sear_btn"  value="Search Data" OnServerClick="search_data_Click" />


теперь, когда я удаляю этот OnServerClick= "search_data_Click" из кнопки, то всплывающий дисплей и вид сетки не отображаются, а когда я добавляю это, то всплывающее окно не появляется отображение вида сетки

в то время как я хочу, чтобы и на одной кнопке было какое-то решение?

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Это нормально. Веб не имеет состояния, ваше всплывающее окно работает на клиенте / браузере. Вызов OnServerClick приведет к тому, что страница выполнит обратную отправку сервера, таким образом воссоздавая страницу. Другими словами, ваше всплывающее окно исчезнет, когда вы вызовете обратную передачу сервера. Суть в том, что вы не можете одновременно работать с сервером и клиентом.

Теперь вот ваши варианты:

1) Вы можете использовать существующую всплывающую функцию и удалить OnServerClick. Затем вы можете написать функцию JavaScript/jQuery, которая будет выполнять AJAX-запрос к серверу для вызова серверного метода.

2) избавиться от своих клиент-всплывающее окно, и вместо того, чтобы использовать на стороне сервера диалоговое окно "Аякс", например, ModalPopupControl из Аjaxcontroltoolkit. Таким образом, вы все еще можете вызвать событие OnServerClick и вызвать ModalPopUpControl из вашего серверного кода
.

3) вы, вероятно, можете сделать хак, а именно добавить скрытое поле, чтобы отметить страницу, если она постбэкит, и решить, показываете ли вы всплывающее окно. Хотя я еще не пробовал, так что не могу гарантировать, что это сработает. ;)