2012-01-02 112 views
3

我正在通過javascript將行添加到動態創建的表格中,我希望在回發中獲取其值。在ASP.NET中檢索動態創建表格的單元格值

這裏的表:

<table id="summ" width="350px" border="1" > 

JavaScript片段添加行:

$('#summ > tbody:last').append('<tr><td><input type="button" id="delete" value="Delete"></td><td>' + sup + '</td><td>' + qty + '</td><td><input type="text"></td></tr>'); 

如何獲得追加到表中的單元格的值一個按鈕被點擊後? 「summ」不被識別,因爲如果我將runat=server放在表格標籤上,則Javascript不起作用。

+0

您想發表什麼細胞的價值?這些** sup **和** qty **?使用$ .post來請求和發送數據。 – adatapost 2012-01-02 02:52:39

+0

@AVD是的,這些變量。我能訪問後面的代碼嗎?對不起,我對JavaScript很陌生。 – 2012-01-02 03:02:04

+0

我發佈的樣本可能會幫助你。發佈相關代碼,如果有問題。 – adatapost 2012-01-02 03:40:33

回答

2

可以定義AJAX(的WebMethod)的代碼背後方法(添加System.Web.Services的引用)和使用$ .ajax或$ .post來請求它。看看我發佈的代碼片段供您參考。

Sample.aspx(聯代碼)

<%@ Page Language="C#" %> 
<%@ Import Namespace="System.Web.Services" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script runat="server"> 
    [WebMethod] 
    public static string SendData(string sup,string qty) 
    { 
     return "OK : " + sup + " " + qty; 
    } 
</script> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Sample Page</title> 
    <script src="../script/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      var sup1 = 10; 
      var qty1 = 20; 
      $("#btn1").click(function() { 
       var arg = '{sup: ' + sup1 + ',qty:' + qty1 + '}'; 
       $.ajax({ 
        type: "POST", 
        url: "Sample.aspx/SendData", 
        data: arg, 
        dataType: "json", 
        contentType: "application/json; charset=utf-8", 
        success: function (msg) { 
         alert(msg.d); 
        }, 
        error: function (msg) { 
         alert("Error: " + msg); 
        } 

       }); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input type="button" id="btn1" value="Save" /> 
    </div> 
    </form> 
</body> 
</html> 

如果你想使用「RUNAT」屬性,然後添加一個空的內部和客戶端ID寫屬性。

<table runat="server" id="summ" width="350px" border="1" > 
<tbody> 
    <tr></tr> 
</tbody> 
</table> 

jQuery代碼

$("#<%=summ.ClientID%> > tbody:last").append('<tr><td><input type="button" id="delete" value="Delete"></td><td>' + sup1 + '</td><td>' + qty1 + '</td><td><input type="text"></td></tr>'); 

OR

+0

如果每個supp和qty列中有5行,該怎麼辦?我如何發佈所有這5行? – 2012-01-02 11:59:40

+0

@PodMays - 在這種情況下,你必須發送包含值的json對象 - 參考SO線程 - http://stackoverflow.com/questions/2645700/sending-a-json-object-to-an-asp-net-web -service-using-jquery-ajax-function我建議你應該嘗試jQuery插件 - jqgrid和更多 - http://stackoverflow.com/questions/159025/jquery-grid-recommendations – adatapost 2012-01-02 12:29:40

2

服務器不知道你是否在使用DOM。 可以使用HiddenFields值回送:

var sup = "test"; 
var qty = 123; 

$('#summ > tbody:last').append('<tr><td><input type="button" id="delete" value="Delete"></td><td>' + sup + '</td><td>' + qty + '</td><td><input type="text"></td></tr>'); 
$('#HiddenField_sup').val(sup); 
$('#HiddenField_qty').val(qty);  

在服務器:

Response.Write(HiddenField_qty.Value); 
Response.Write(HiddenField_sup.Value); 
相關問題