2012-01-02 75 views
3

動的に作成されたテーブルにJavaScriptを使用して行を追加していて、その値をポストバックで取得したかったのです。ASP.NETで動的に作成されたテーブルのセル値を取得します。

はここで、テーブルの:

$('#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>'); 

ボタンがクリックされた後、私はテーブルに追加のセルの値を取得するにはどうすればよい:行を追加する

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

のJavaScriptスニペット? "summ"は認識されません。runat=serverをテーブルタグに置くと、Javascriptが動作しないためです。

+0

?これらの** sup **と** qty **ですか?データを要求して送信するには、$ .postを使用します。 – adatapost

+0

@AVDはい、それらの変数。コードの中にあるコードにアクセスすることはできますか?申し訳ありませんが、私はJavaScriptには本当に新しいです。 –

+0

私はあなたを助けるかもしれないサンプルを投稿しました。問題があれば、関連するコードを投稿してください。 – adatapost

答えて

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> 

あなたは「ラナ」属性を使用したい場合は、内部の空を追加して、クライアント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>'); 

たり、投稿したいセルのどのような値

+0

各列に5行がある場合はどうなりますか?どのようにそれらの5行すべてを投稿するのですか? –

+0

@PodMays - この場合、値を含むjsonオブジェクトを送信する必要があります。 - Refere 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

2

サーバーは、あなたがDOMについてうんざりしているとは考えていません。サーバにおける

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);  

を: あなたはHiddenFieldsを使用してバックの値を送信することができる

Response.Write(HiddenField_qty.Value); 
Response.Write(HiddenField_sup.Value); 
関連する問題