2009-09-05 55 views
0

我目前有一个简单的表单,当你点击“保存”按钮将它坚持到数据库。JQuery与asp.net 3.5和做post/call backs

我想使用JQuery为我做回调,并弹出一个“保存完成”div窗口/ div某种。

我唯一的问题是如何从JQuery中调用btnSave_Click()事件?

如果我使用PageMethods,该方法必须是静态的,因此无法访问我的文本框和其他页面控件?

感谢, 鹅

回答

1

你是否明确地试图避免传递输入控件的值?因为那样会容易得多。

使用一个轻量级的jQuery调用来完成这个帖子,但随后期望在后面的代码中完全控制层次结构来将数据提取出来?这里有什么意图?如果你需要的话,提交页面可能会更容易,并且注册javascript以运行以在加载时弹出成功消息。

就我个人而言,我认为页面方法的路线和$ .ajax或$ .post是一个更清洁,单独的方式来解决问题。这样,您可以将弹出窗口显示为成功回调的一部分。

+0

我的意图是使用回调和部分渲染,而不是完整的后备。该网站已经就位,所有处理提交表单数据的代码/方法都可以正常工作。尽管以正确的方式做到这一点要干净得多。我真的不想重做那些包含修改代码的一组新的回归测试的代码。 真的,我只是想使用回调传递更少的数据,而不是每次都重新加载整个页面。 所以我可能只是去注册运行启动的方式......但我怎么会用UpdatePanels做到这一点? Thx – Goosey 2009-09-06 00:53:13

+0

我得到它的工作,因为我想通过使用您提到的方法...并只为任何其他人尝试这一点确保在UpdatePanel中使用ScriptManager.RegisterStartupScript()而不是ClientScript.RegisterStartupScript()。 – Goosey 2009-09-06 01:01:03

0

可以使用的OnClientClick

+0

这将调用我的JS函数,后者又调用我的PageMethod,它声明为静态,并且无法访问页面控件,我可以通过JQuery获取所有表单数据,但宁可通过代码实现,背后。 – Goosey 2009-09-05 21:56:22

0

看一看的jQuery Form Plugin,它可以改变现有的形式进入阿贾克斯的形式。

+0

感谢您的链接。实际上我只是将AJAX添加到现有的asp.net表单中。我所有的代码隐藏的逻辑和方法已经存在,并且正如我所希望的那样工作。 我只是想能够用回调(updatepanels)而不是完整的回发,然后如何一个很好的jQuery的弹出窗口,说“已保存”或什么的。 我想我可以从我的代码后面调用我的JS而不是其他方式? – Goosey 2009-09-05 22:14:52

0

如果您想使用相同的处理程序,则需要将__EVENTTARGET设置为您想要模拟的控件的id。我似乎还记得,还必须用美元符号替换下划线,但我可能会错误的。隐藏的输入__EVENTTARGET__EVENTARGUMENT被框架用来识别哪个控件导致了回发。关于这个blog post中的服务器端问题有一个很好的讨论,虽然它没有谈论AJAX。 Google for __EVENTTARGET and postback欲了解更多信息。

+0

感谢您的回复,虽然这在技术上是正确的,但它不是我正在寻找的东西,我问了错误的问题,但您仍然给出了正确的答案。 – Goosey 2009-09-06 01:02:12