Итак, я пытаюсь загрузить возвращенный html со страницы .aspx, но событие click должно сработать, прежде чем оно выполнит некоторые действия, от которых зависит запрос AJAX. Более конкретно, я делаю это. Когда пользователь вводит текстовое поле, эта функция запускается ...
function KeyPress() {
$("#" + HiddenButtonId).click();
$("#test").load("TempJumpToAJAX.aspx");
}
then $ ("#" + HiddenButtonId) .click (); действительно устанавливает некоторые данные сеанса в коде позади файла. В частности ...
Session["SearchText"] = Search.Text;
затем, $ ("# test"). Load ("TempJumpToAJAX.aspx"); вызывает эту ASPX-страницу, которая возвращает только что созданное поле выбора ...
Response.Expires = -1;
StringBuilder builder = new StringBuilder();
builder.Append("<select id=\"testListId\" name=\"testList\" size=\"4\" style=\"width:200px;\">");
builder.Append("<option>");
builder.Append(Session["SearchText"]);
builder.Append("</option>");
builder.Append("</select>");
Response.ContentType = "text/HTML";
Response.Write(builder.ToString());
Response.End();
Проблема в том, что порядок, похоже, облажался: сначала он пытается добавить сеанс ["SearchText"], а затем запускает код, который запускает событие click. Так что это работает больше так ...
function KeyPress() {
$("#test").load("TempJumpToAJAX.aspx");
$("#" + HiddenButtonId).click();
}
Где команды меняются местами. Так что в действительности происходит то, что переменная сеанса имеет пустую строку, а не то, что пользователь набрал в текстовом поле. Что странно для меня, так это то, что не должно быть пустой строки, похоже, что ничего не должно быть, поскольку переменная сеанса на этом этапе не была инициализирована ни к чему. Я действительно понятия не имею, что происходит. Мел, до неопытности, я думаю. Есть идеи?