2014-12-22 51 views
0

我被困在我的編碼的這一部分,我不得不向用戶顯示數據已保存的消息。我在C#中有一個函數,它執行一個SQL過程並返回一個值。通過Javascript捕獲cs函數的返回值

C#功能:

Sql p = new Sql("Data_Set"); 
    try 
    { 
     p.Add("plan_table", dt); \\ A temp table 
     p.Run(); 

     HttpContext.Current.Response.Redirect("/projmain/index.html"); 
     return "success"; 
    } 
    catch (Exception e) 
    { 
     return "Error saving Data <br><hr>" + e.Message + "<br><br>" + e.StackTrace + "<br><br><br><br>" + p.ToString() + ""; 
    } 
} 

我想捕捉我的HTML文件中的返回值,其中我使用JsonMethodPost(Java函數)。並顯示一條消息,說明數據已保存。

回答

0
Sql p = new Sql("Data_Set"); 
    try 
    { 
     p.Add("plan_table", dt); \\ A temp table 
     p.Run(); 
// heare to put allert message "success" 
     HttpContext.Current.Response.Write("<script>alert('success');</script>"); 
     HttpContext.Current.Response.Redirect("/projmain/index.html"); 
//this code are redirect page 
     return "success"; 
    } 
    catch (Exception e) 
    { 
     return "Error saving Data <br><hr>" + e.Message + "<br><br>" + e.StackTrace + "<br><br><br><br>" + p.ToString() + ""; 
    } 
} 
+0

嗨,感謝您的回覆。你能告訴我,如果我們可以在cs文件中提醒用戶提醒嗎?我的cleint端是html和java,而服務器端是cs。 – aruna

+0

Response.Write(「」); – vivek

+0

嗨Vivek,我試過這個,但得到一個錯誤「名稱」響應「不存在於當前的上下文中」 – aruna

0

如果用戶通過發佈到服務器與此功能進行交互,您可以進行ajax調用,並在該調用成功時顯示消息。即:

jQuery.ajax(url, { 
    success: function(data){ 
    alert("Data saved"); 
} 

或類似的東西。

編輯: 你會把它放在你的index.html中,但它聽起來像你使用java與服務器交互。不知道如何將這個響應包裝到javascript邏輯中,以便將消息返回給客戶端

+0

嗨,謝謝你的迴應。你能建議我應該在哪裏使用這個,因爲我從來沒有使用過jQuery。我應該在JsonMethodPost中使用它嗎?我在html文件中的java函數是「function save」,它通過JsonMethodPost調用CS函數。 JsonMethodPost(「/ Modulepath/SaveData」,goFunc,「ETable」,JSON.stringify(row_array)); – aruna

+0

也許你可以做一些像vivek建議的事情?感謝您的詳細解釋,在響應 –

0

在這裏,您可以使用jquery調用c#函數並返回消息。然後你可以在像div這樣的控件中顯示這個消息。例如你有兩個文本框和一個提交輸入控件,當它被點擊時,jquery調用c#函數。 讓我們有我們的HTML頁面一樣 -

 <div id="messageDiv"></div> 
     <table> 
      <tr> 
       <td>Name:-</td> 
       <td> 
        <input type="text" id="nameInput"/></td> 
      </tr> 
      <tr> 
       <td>Email:-</td> 
       <td> 
        <input type="text" id="emailInput" /></td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="submit" id="submitButton" value="Submit"/></td> 
      </tr> 
     </table> 

這個提交按鈕的jQuery的單擊事件下面給出

$(document).ready(function() { 
     $("#submitButton").click(function (e) { 
      var result = ValidateAll(); 
      if (result == true) { 
       $.ajax({ 
        type: "POST", 
        url: "yourpage.aspx/yourfunction", 
        contentType: "application/json; charset=utf-8", 
        data: '{"name":"' + $("#nameInput").val() + '","email":"' + $("#emailInput").val() + '"}', 
        dataType: "json", 
        success: function (msg) { 
         if (msg.d) { 
          $("#messageDiv").html(msg.d); 
         } 
        }, 
        error: function (req, status, error) { 
         alert("Error try again"); 
        } 
       }); 
      } 
      return false; 
     }); 
    }); 

最後你的C#功能

[WebMethod] 
public static string yourfunction(string name, string email) 
{ 
    //Insert it to our database 
    return "thanks, your message"; 
} 

注意,函數應該具有[WebMethod]屬性,並且本質上應該是靜態的。 此C#函數的返回值顯示在ID爲'messageDiv'的div內。

+0

的腳本標記中發送JavaScript。會嘗試讓你知道。 – aruna