jquery ajax .net使用

來源:互聯網
上載者:User

jquery是一個優秀的javascript架構,大大提高了javascript代碼的簡潔性,同時也降低了javascript的難度。關於具體的jquery函數請參考http://www.cnblogs.com/greatxj/articles/2260357.html。對於jquery中的ajax,我主要使用了ajax()這個函數,下面就寫一點使用心得,有什麼不足之處向大家多多請教了。後台代碼為C#

1.對一個表添加資料

前台代碼

 1   $.ajax({
 2                     type: "POST",   //訪問WebService使用Post方式請求
 3                     contentType: "application/json", //WebService 會返回Json類型
 4                     url: "ajax.aspx/AddToTP", //調用WebService的地址和方法名稱組合 ---- WsURL/方法名
 5                     data: '{  tid: "' + tid + '", uid:"' + uid + '",score: "' + score + '", degree: "' + degree + '"}',         //這裡是要傳遞的參數,格式為 data: "{paraName:paraValue}",下面將會看到       
 6                     dataType: 'json',
 7                     success: function (result) {     //回呼函數,result,傳回值
 8                         alert(result.d);//彈出ajax請求成功後,背景傳回值
 9                         if (result.d == "success") {
10 
11                       //成功事件
12                         }
13                     }

14                 });  

c#接收ajax請求可以用.aspx,或者.ashx(一般交易處理程式) ,這裡使用.aspx中的web服務。

 

1     [System.Web.Services.WebMethod()]
2     public static string AddToTP(string tid,string uid,string score,string degree)
3     {
4         bool ok=DBHpler.ExecuteNonQueryTwo( "Insert into trainingpeople (tid,uid,score,degree) Values('"+tid+"','"+uid+"','"+score+"','"+degree+"')");//使用sql協助類,對錶trainingpeople插入資料
5         if (ok == true) { return "success"; }  //對DBHpler.ExecuteNonQueryTwo傳回值判斷
6         else { return "failed"; }
7     } 

2.當使用者點擊按鈕時,ajax請求返回使用者選擇班級的人員表單,並對錶單格式化,此處類比的為對班級測試輸入成績,使用者可選擇直接輸入分數,或者是二級制

前台js代碼

  <script language="javascript" type="text/javascript">

   
      function getPeople() {
          $('#progress').css('visibility', 'visible');  //loading圖片顯示
              $.ajax({
                  type: "POST",   //訪問WebService使用Post方式請求
                  contentType: "application/json", //WebService 會返回Json類型
                  url: "ajax.aspx/GetPeople", //調用WebService的地址和方法名稱組合 ---- WsURL/方法名
                  data: '{unit:"' + $('#Select1').val() + '"}',         //這裡是要傳遞的參數為使用者下拉框中選擇的值,此處為使用者選擇的某個子單位      
                  dataType: 'json',
                  success: function (data) {     //回呼函數,result,傳回值
                      $('.dd').empty();         //對<div class="dd">清空
                      $('.dd').append(data.d);         //對<div class="dd">填寫ajax傳回值
                      
                      $('#progress').css('visibility', 'hidden');   //loading圖片隱藏
                      var ss = $('#Select3 option:selected').val();
                      //根據使用者選擇的值格式化表單
                      if (ss == "score") {
                          $('.dd .scoretxt').each(function (i) {
                              $($('.dd .scoretxt ')[i]).append('<input type="text" class="score"/>');
                          });

                      }
                      else {
                     
                              $('.dd .scoretxt').each(function (i) {
                                  $($('.dd .scoretxt ')[i]).append('<select class="score" ><option value="合格">合格</option><option value="不合格">不合格</option><option value="未測">未測</option></select>');
                              });

                      }

                  }
              });
          }
 </script>

 

後台代碼

 ajax.aspx中

  •    [System.Web.Services.WebMethod()]
  •      public static string GetPeople(string unit)
  •      {
  •          System.Threading.Thread.Sleep(500); //延遲0.5秒
  •          Page page = new Page();
  •          UserScoreInput ctl = (UserScoreInput)page.LoadControl("~\\Samples\\UserScoreInput.ascx");  //載入表單控制項
  •          ctl.unit = unit;  //傳遞給表單控制項的參數
  •       
  •             page.Controls.Add(ctl);
  •          System.IO.StringWriter writer = new System.IO.StringWriter();
  •          HttpContext.Current.Server.Execute(page, writer, false);
  •          string output = writer.ToString();
  •          writer.Close();
  •          return output;

15     } 

使用者控制項 

 

UserScoreInput.ascx代碼 1 <%@ Control Language="C#" AutoEventWireup="true"  Inherits="UserScoreInput"  ClassName="UserScoreInput" %>
 2 
 3 <script runat="server">
 4     protected override void OnLoad(EventArgs e)
 5     {
 6       
 7 
 8         if (int.Parse(this.unit) > 1000)
 9             sqlDsOrders.SelectCommand = "SELECT [ID], [name] FROM [personnel] WHERE unit = '" + this.unit + "%'";
10 
11         base.OnLoad(e);
12     }
13 
14    
15 </script>
16 //此處採用兩列重複
17 <asp:SqlDataSource ID="sqlDsOrders" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" >
18 </asp:SqlDataSource>
19 <asp:Repeater ID="List" DataSourceID="sqlDsOrders" runat="server">
20     <HeaderTemplate>
21         <table style="width:80%">
22         <tr>
23 <th>姓名</th>
24 <th>成績</th>
25 <th>姓名</th>
26 <th>成績</th>
27 </tr>
28     </HeaderTemplate>
29     <ItemTemplate>
30         <tr>
31              <td style="width:25%">
32              <div class="hh" ><%# Eval("name") %></div>
33              </td>
34               <td style="width:25%">
35              <div class="scoretxt" name='<%# Eval("id") %>'>
36              </td>
37     
38     </ItemTemplate>
39       <AlternatingItemTemplate>
40        
41              <td style="width:25%">
42              <div class="hh" ><%# Eval("name") %></div></td>
43 
44               <td style="width:25%">
45              <div class="scoretxt" name='<%# Eval("id") %>'>
46              </td>
47       </tr>
48         </AlternatingItemTemplate>
49     <FooterTemplate>
50         </table>
51     </FooterTemplate>

52 </asp:Repeater> 

 UserScoreInput.ascx.cs代碼

 1 public partial class UserScoreInput : UserControl

2 {
3     public string unit
4     {
5         get { return (string)ViewState["unit"]; }
6         set { ViewState["unit"] = value; }
7     }
8    
9 }

 有什麼不足之處請大家留言,共同學習。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.