在asp.net webform上加载表单的Jquery Ajax

我在父.aspx的div上使用$ .load()a .aspx页面加载,让我们说。 加载内容时,在aspnetForm内部的代码中放置一个新表单。 我之前以一种非常类似的方式完成了这个,但这次提交按钮将新表单提交到ajax加载页面,而不是aspnetForm父页面。

编辑:更多细节

当用户从列表中选择一组项目时,它们会被ajax加载,如下所示:

$("#gvContacts").load("MailingContacts.aspx?ids="+$("#filters").val() + "&removedContacts=" + $("#removedContacts").val() + "&action=", function()); 

MailingContacts是一个内置GridView的aspx webForm。 当.load将HTML放在div上时它会像这样:

 

由于某种原因,提交页面的Button使用的是新表单而不是原始的aspnetForm。

您不允许使用嵌套表单 – 如果您在主要父表单中添加一组新的

标记,您将最终处于痛苦的世界中。

基本上,您通过在客户端创建嵌套表单来绕过服务器端validation。 我想你的提交按钮然后使用它在页面上找到的最后一个表单操作,而不是“父”操作。

你应该:

  1. 将JavaScript创建的表单加载到主ASP.NET表单控件外部的

    (页面上允许多个表单,而不是嵌套)。

  2. 以这样一种方式构建主表单,即它可以处理MailingContacts的表单内容,并从中删除表单标记。
  3. 不是返回整个页面的HTML,包括通过AJAX的GridView,只返回用户详细信息的集合,并使用jQuery等将它们呈现为一个列表 – 您发送的数据比发送所有HTML所需的数据多得多。

这是因为在form标签中设置的action属性有一个告诉它在哪里提交的值…在ASP.Net中,这默认是页面的URL。

例如,来自我当前项目输出的表格,如下所示:

 

如何在asp.net表单标签中“嵌套”表单标签内添加IxQuick搜索框,并提交提交function。

药膏! 我有类似的问题。 我有一个构建在母版页上的aspx页面,其中包含asp.net表单标记。 现在,我想在该页面上使用Ixquick搜索框,但我需要将其封装在表单标签内以使其工作; 但是,当然,您不能在aspx页面中嵌套表单标签。

以下是我解决问题的方法:

我在jquery中创建了整个searchbox,并使用jquery将其添加到aspx页面来替换空div。 在服务器提供代码 ,Javascript在客户端中运行,从而绕过嵌套div的任何问题。 这也避免了母版页的表单标签的母版页提交行为的任何问题。 您在输出的html中获得自己的表单标记,以及您自己的提交行为。

将这两行放在您希望搜索框出现的aspx页面中。

   

在我的.js文件中,我补充说:

 function AddSearchBox(where){ var SearchingForm = "
" $(where).html(SearchingForm); return false; } function SearchBarSubmit(){ var searchquery = $('#searchbox').val(); location.href="http://ixquick.com/do/metasearch.pl?query=" + searchquery + "&cat=web&language=english&cmd=process_search&frm=sb&linkback_url=http://www.mywebsite.com&linkback_sitename=mySiteName"; return false; }

现在,每当有人输入我的搜索框时,它会自动在IxQuick中运行搜索查询并显示结果 – 就像在普通的html表单中一样。 更好的是,如果他们没有打开javascript,他们就不会破坏搜索框,因为他们根本没有搜索框! 我不介意,因为我为了漂亮而添加了搜索框。

如果您使用此代码,请务必将“www.mywebsite.com”更改为您自己的网站,并确保将“mySiteName”的链接更改为您网站的名称。