【问题标题】:Retrieve cell value of dynamically created table in ASP.NET在 ASP.NET 中检索动态创建的表的单元格值
【发布时间】:2012-01-02 02:17:05
【问题描述】:

我正在通过 javascript 将行添加到动态创建的表中,并且我想在回发时获取其值。

这是桌子:

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

Javascript sn-p 添加行:

 $('#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 放在 table 标记上,Javascript 将不起作用。

【问题讨论】:

  • 您要发布的单元格的值是多少?这些是 supqty 吗?使用 $.post 请求和发送数据。
  • @AVD 是的,那些变量。我可以访问后面代码中的那些吗?抱歉,我真的是 javascript 新手。
  • 我已经发布了可能对您有所帮助的示例。如果有任何问题,请发布相关代码。
  • 顺便说一句,如果您确实使用&lt;table id="summ" runat="server" ... /&gt; 并且这是一个内联脚本,请务必将客户端 ID“注入”到您的 javascript 中:$'#&lt;%= summ.ClientID %&gt; &gt; tbody:last').append(...);

标签: jquery asp.net html-table


【解决方案1】:

您可以在后面的代码中定义 AJAX (WebMethod) 方法(添加 System.Web.Services 的引用)并使用 $.ajax 或 $.post 来请求它。查看我发布的 code-sn-p 供您参考。

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”属性,那么在里面添加一个空并写入ClientID属性。

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

【讨论】:

【解决方案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);

【讨论】:

    猜你喜欢
    • 2010-12-18
    • 2014-05-08
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多