单击按钮时运行代码隐藏代码的Javascript

时间:2010-11-24 14:42:34

标签: c# javascript asp.net

单击“保存”按钮时,会显示一个弹出窗口。弹出窗口有2个按钮。是和否。否应取消弹出窗口 并且是的,应该让你在代码隐藏中运行,比如btnSave_Click(对象发送者,Eventargs e)。这怎么可能。有人可以帮助我,我是Javascript的新手。

以下是我在弹出窗口中显示的代码。

var mdlPopup = $find('<%= ModalPopupExtendersavechanges.ClientID %>');
     if(mdlPopup)
     {
       mdlPopup.show();           
     }

4 个答案:

答案 0 :(得分:2)

您无法直接从JavaScript调用服务器端代码。在后台进行回发或发出XHR(AJAX)请求。

答案 1 :(得分:2)

要执行此操作,您需要将服务器端功能设置为这样的Web方法:

添加到您的代码顶部:

using System.Web.Services;
using System.Web.Script.Services;

然后用这些属性装饰你的方法:

 [WebMethod(), ScriptMethod()]
 public static void btnSave_Click(Object sender)
 {
   //Stuff
 }

要从客户端(Javascript)调用此方法,请执行以下操作:

PageMethods.btnSave_Click(this,btnSave_Click_Finished);

您可以将其置于客户端点击事件中。第一个参数是sender参数,第二个参数是服务器端方法完成时调用的javascript函数。

答案 2 :(得分:0)

我认为您可以使用javascript访问服务器端脚本。 __doPostBack是一个在asp回发后面的函数,当单击一个按钮或更改下拉值时会调用此函数。 有关详细信息,请参阅[this。] [1]

您只需在表单和javascript(即按钮点击功能)中放置<asp:Button ID="btnSave" runat="server" onClick="btnSave_Click" />,只需拨打__doPostBack('<%= btnSave.UniqueID %>', '');

即可。

所以它会调用serverside函数。(btnSave_Click)  请注意,您需要将'<%= btnSave.UniqueID %>'作为第一个参数。

以上内容与服务器按钮点击类似

另一种方法是使用jquery.postjquery.ajax发布帖子或ajax,可以异步发送请求到服务器。在这里你想要传递一些查询字符串并调用相应的函数page_Load 这将没有任何回发

另一种方法是通过定义静态WebMethod

从客户端使用PageMethods

[1]:http://msdn.microsoft.com/en-us/library/aa720099%28vs.71%29.aspx/“从客户端调用服务器端功能” 我希望其中任何一个都能解决你的问题

答案 3 :(得分:0)

Yes按钮应该是带有服务器端处理程序的asp.net控件

标记

<asp:button id="yesButton" runat="server" onclick="yes_click" />

代码隐藏

void yes_click(object sender, EventArgs e) {
   // TODO your thing here.
}

其他按钮可以是带有javascript事件处理程序的标准html input。如果你使用javascript来改变元素样式,那么更改将不会在回发中持续存在 - 当yes按钮提交并且页面重新加载时,弹出窗口将不可见。