0

我从 JQuery mobile 开始,我有一个非常奇怪的问题,我的应用程序非常简单,它是一个带有 TextBox、一个按钮和一个 Linkbutton 的页面:

<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 使用 Ajax 加载页面,而 asp.net Web 表单回发模型根本不适用于这种默认行为。您唯一的选择(除了迁移到不同的服务器端技术)是关闭 Ajax 加载。在按钮上使用 PostBackUrl 属性执行服务器端重定向。

您需要关闭<form data-ajax="false">标签和/或按钮上的 Ajax 加载。<asp:LinkButton data-ajax="false">Continue</asp:LinkButton>. 我不确定 PostBackUrl 会引入什么行为。

如果您想继续使用 Microsoft 技术,asp.net MVC 是一个更好的选择。如果您真的想坚持使用 Web 表单,我也成功地使用直接 html 文件进行标记,然后连接到 asp.net(Web 表单)asmx / Web 服务,但这需要大量使用 JavaScript 和客户端编程.

Ajax 加载主要用于性能和更接近本地代理应用程序。如果您的应用程序仅用于 Intranet 或有限的受众,您可能只需将其关闭即可。

于 2012-12-26T14:32:14.713 回答