簡體   English   中英

單擊按鈕時用於運行代碼隱藏代碼的Javascript

[英]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.postjquery.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM