![](/img/trans.png)
[英]Can't combine button-disable and code-behind function (JavaScript + code-behind)
[英]Javascript for running code-behind code when a button is clicked
单击保存按钮时,我将显示一个弹出窗口。 弹出窗口有2个按钮。 是和否。否应该取消弹出窗口,是应该使您在后面的代码btnSave_Click(object sender,Eventargs e)中起作用。 这怎么可能。 有人可以帮助我,我是Java语言的新手。
以下是我在弹出窗口中显示的代码。
var mdlPopup = $find('<%= ModalPopupExtendersavechanges.ClientID %>');
if(mdlPopup)
{
mdlPopup.show();
}
您不能直接从JavaScript调用服务器端代码。 进行回发或在后台触发XHR(AJAX)请求。
为此,您需要将服务器端功能设置为如下所示的网络方法:
添加到代码顶部的后面:
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函数。
我认为您可以使用javascript访问服务器端脚本。 __doPostBack
是位于asp postback后面的函数,当单击按钮或更改下拉值时,将调用此函数。 有关更多详细信息,请参考[this。] [1]
您只需要在表单和javascript(即按钮单击功能)中放置<asp:Button ID="btnSave" runat="server" onClick="btnSave_Click" />
,只需调用__doPostBack('<%= btnSave.UniqueID %>', '');
因此它将调用服务器端函数。(btnSave_Click)注意,您需要将'<%= btnSave.UniqueID %>'
作为第一个参数。
上面的工作类似于服务器按钮的单击
另一种方法是使用jquery.post或jquery.ajax来发布帖子或ajax,可以将请求异步发送到服务器。在这里,您想传递一些查询字符串并在page_Load
调用适当的函数。回传
另一种方法是通过定义静态WebMethod从客户端使用PageMethods
[1]: http : //msdn.microsoft.com/zh-cn/library/aa720099%28vs.71%29.aspx/ “从客户端调用服务器端功能”我希望其中任何一个都能解决您的问题
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按钮并重新加载页面时,将不会显示弹出窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.