![](/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.