单击“保存”按钮时,会显示一个弹出窗口。弹出窗口有2个按钮。是和否。否应取消弹出窗口 并且是的,应该让你在代码隐藏中运行,比如btnSave_Click(对象发送者,Eventargs e)。这怎么可能。有人可以帮助我,我是Javascript的新手。
以下是我在弹出窗口中显示的代码。
var mdlPopup = $find('<%= ModalPopupExtendersavechanges.ClientID %>');
if(mdlPopup)
{
mdlPopup.show();
}
答案 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.post或jquery.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按钮提交并且页面重新加载时,弹出窗口将不可见。