Глядя на ваш код, вам будет лучше, если вы перенесете логику проверки на стороне сервера на стороне клиента. По сути, вам нужно подключиться к событию blur
поддержки ввода (управления календарем) и проверить выпадающие списки. Это также устранит постбэк при выборе даты.
На стороне сервера проверка должна выполняться в том месте, где будут использоваться все данные - например, кнопка Search
, если вы вызываете поиск после заполнения отеля, города и даты.
РЕДАКТИРОВАТЬ :
Вот пример кода (на основе jquery), с которого следует начать. Вместо элемента управления Calender (с разметкой которого я не знаком), я предполагаю, что вы используете AJAX Toolkit Calender Extender или некоторый пользовательский интерфейс на основе java-скриптов, такой как jquery date-picker который будет моим предпочтением, кстати). С обоими этими подходами у вас есть полный контроль над вспомогательным полем ввода.
Так что с инструментарием AJAX разметка будет выглядеть примерно так:
<asp:TextBox runat="server" ID="Date1" />
<ajaxToolkit:Calendar runat="server" TargetControlID="Date1" />
Теперь в вашем файле разметки (aspx) может быть следующий скрипт:
$(document).ready(function() {
var date = $('#<%= Date1.ClientID %>');
var city = $('#<%= ddlCityNames.ClientID %>');
var hotel = $('#<%= ddlHotelNames.ClientID %>');
date.blur(function() {
// check if date has been selected
if (date.val() != '') {
if (city.val() == '') { // **** put value at index zero that you use for no-selection
alert('Select City');
}
else if (hotel.val() == '') {
alert('Select Hotel');
}
}
});
});