Кнопка jquery mobile link не работает

Я начинаю с мобильного JQuery, и у меня очень странная проблема, мое приложение очень простое, это страница с текстовым полем, кнопкой и кнопкой Link:

<div data-role="content">
  <asp:TextBox ID="TextBox_Topic" runat="server"></asp:TextBox>
  <asp:Button ID="Button_add" runat="server" Text="Add" onclick="Button_add_Click" />
  <asp:LinkButton ID="LinkButton_grid" runat="server" PostBackUrl="multisubsGrid.aspx" data-role="button">Continue</asp:LinkButton>
</div>

Единственное, что мне нужно сделать, это вставить текст в текстовое поле, а при нажатии кнопки «Добавить» добавить его в переменную сеанса (список), а затем нажать кнопку «Ссылка», чтобы перейти на другую страницу. Это очень простое поведение, и оно отлично работало до добавления мобильной библиотеки jquery. Проблема в том, что когда я вставляю некоторый текст и нажимаю кнопку добавления (она добавляет текст в переменную сеанса), LinkButton не работает, и я не могу понять, почему это происходит.

это мой код позади:

protected void Button_add_Click(object sender, EventArgs e)
{ 
    List<string> l = Session["topics"] as List<string>;
    if (!l.Contains(TextBox_Topic.Text))
    l.Add(TextBox_Topic.Text);
}

Надеюсь, кто-нибудь может мне помочь. Спасибо!!!


person Rocio    schedule 26.12.2012    source источник


Ответы (1)


jQuery Mobile использует Ajax для загрузки страниц, а модель обратной передачи веб-форм asp.net просто не работает с таким поведением по умолчанию. Ваш единственный вариант (кроме перехода на другую серверную технологию) — отключить загрузку Ajax. Использование атрибута PostBackUrl для кнопки выполняет перенаправление на стороне сервера.

Вам нужно будет отключить загрузку Ajax для вашего тега <form data-ajax="false"> и/или кнопки. <asp:LinkButton data-ajax="false">Continue</asp:LinkButton>. Я не уверен, какое поведение представит PostBackUrl.

asp.net MVC — гораздо лучший выбор, если вы хотите остаться с технологией Microsoft. Я также добился успеха, используя прямые html-файлы для моей разметки, а затем подключаясь к asp.net (веб-форме) asmx/веб-сервисам, если вы действительно хотите придерживаться веб-форм, но это потребует интенсивного использования JavaScript и программирования на стороне клиента. .

Загрузка Ajax используется в основном для повышения производительности и приближения к нативным приложениям. Если ваше приложение предназначено только для использования в интрасети или для ограниченной аудитории, вы, вероятно, можете просто отключить его.

person andleer    schedule 26.12.2012
comment
Привет Андлер!! Большое спасибо за ваш ответ, это полностью сработало, дело в том, что я не могу изменить технологию, поэтому ваше решение спасло меня! - person Rocio; 27.12.2012