Существует несколько подходов к решению этой проблемы.
1.Все все на стороне сервера.
Вы можете использовать модальный дилог Ajax (бывший атлас). Поместите это в панель обновления. Создайте триггер и укажите событие в этом триггере - это будет, когда вы будете делать вызов в БД. Это произойдет только один раз, и вы сможете контролировать, когда именно вы захотите это сделать.
2. Используйте клиентскую сторону ajax.
Я предпочитаю этот способ, так как есть много накладных расходов, связанных с использованием UpdatePanel (производительность).
Держите модальный диалог jQuery UI в такте, используйте событие на стороне клиента, чтобы подключиться к нему при его открытии. Затем вам нужно будет либо выполнить .ajax-вызов веб-службы (может быть размещен на странице aspx), либо вы можете сделать .get:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
или
$.get('ajax/MyDbRecord.aspx', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
Тогда ваша страница aspx может просто:
Response.Write (MyRepository.GetDetail (q => q.ID == 1234) .ToString ());
Resonse.End ();
Это, конечно, если вам нужно только отобразить эти данные в вашем модальном диалоге в виде простой строки и вам не нужно будет проверять ваш объект на стороне бизнеса.
Оба API описаны здесь подробно:
http://api.jquery.com/jQuery.get/
Теперь, если вы действительно хотите сделать что-то особенное с подробной записью, которую вы извлекаете из базы данных, вы можете захотеть изучить использование getJSON.
Больше примеров здесь:
http://viralpatel.net/blogs/2009/04/jquery-ajax-tutorial-example-ajax-jquery-development.html