0

私はJQueryモバイルから始めていますが、非常に奇妙な問題があります。私のアプリは非常にシンプルで、テキストボックス、ボタン、リンクボタンのあるページです:

<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 モバイル ライブラリを追加する前は問題なく動作していました。問題は、テキストを挿入して追加ボタンをクリックすると (テキストがセッション変数に追加されます)、LinkBut​​ton が機能せず、なぜこれが起こっているのか理解できません。

これは私のコードビハインドです:

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);
}

誰かが私を助けてくれることを願っています。ありがとう!!!

4

1 に答える 1

3

jQuery Mobile uses Ajax to load pages and the asp.net web forms postback model simply doesn't work with this default behavior. Your only option (other than moving to a different server side technology) is to turn off Ajax loading. Using the PostBackUrl attribute on a button performs a server-side redirect.

You will need to turn off Ajax loading on your <form data-ajax="false"> tag and/or button. <asp:LinkButton data-ajax="false">Continue</asp:LinkButton>. I am not sure what behavior the PostBackUrl will introduce.

asp.net MVC is a much better choice if you want to stay with a Microsoft technology. I have also had success using straight html files for my markup and then connecting to asp.net (web form) asmx / web services if you really want to stick with web forms but this this will require heavy use of JavaScript and client-side programming.

Ajax loading is used mostly for performance and to come closer to native acting applications. If your application is intended only for intranet use or a limited audience, you can likely get away with just turning it off.

于 2012-12-26T14:32:14.713 に答える