Javascript 为什么不能从代码隐藏(vb.net)读取HTML表中的行?

Javascript 为什么不能从代码隐藏(vb.net)读取HTML表中的行?,javascript,html,vb.net,dom,html-table,Javascript,Html,Vb.net,Dom,Html Table,我有一个HTML表格,通过按钮的onclick事件使用Javascript插入一行 这是我的密码 HTML: 我试图通过Javascript插入HTML表格行,但在VB.NET中,结果是rows.count只有一行,而该行只是标题。为什么会这样?在客户端,Javascript成功地将行添加到表中 为什么代码隐藏只读取标题行?少了什么 请询问您是否需要我提供更多信息。主要原因可以在Amir Sherafatian的评论中通过邮寄方式找到: 创建网站时,将呈现所有html—具有runat=“ser

我有一个HTML表格,通过按钮的
onclick
事件使用Javascript插入一行

这是我的密码

HTML:

我试图通过Javascript插入HTML表格行,但在VB.NET中,结果是
rows.count
只有一行,而该行只是标题。为什么会这样?在客户端,Javascript成功地将行添加到表中

为什么代码隐藏只读取标题行?少了什么


请询问您是否需要我提供更多信息。

主要原因可以在Amir Sherafatian的评论中通过邮寄方式找到:

创建网站时,将呈现所有html—具有runat=“server”属性的元素在页面执行期间在服务器端生成1:1对象

请注意,当html被写入客户端时,页面执行将结束,除非您将一些数据存储在缓存/会话/视图状态/cookies或任何其他持久性存储中,否则有关呈现页面的所有数据都将在web服务器上丢失

当客户端单击“提交”时,页面的状态将从网页上的持久存储和输入中恢复(这基本上是一种表单,因此每次回发都会将所有输入/选择/隐藏字段发送回服务器),用户使用控制台通过自己的java脚本修改您的页面-服务器无法接受。html对于回发上的web服务器来说毫无意义。通信的唯一方式是通过从表单字段映射的回发属性

任何其他不是输入字段/隐藏字段的对象都是从开始页面执行时的某个地方的aspx/html(在服务器上)重新生成的

代码隐藏只看到标题行,因为在生成页面状态的表中只定义了标题行

如果要实现目标,需要使用runat=server定义至少一个隐藏字段,在使用JavaScript添加/删除行时向其中添加/删除数据。然后,其数据将作为表单回发参数发送到服务器。在那里,您可以像访问隐藏字段一样访问它(正如我所解释的,隐藏字段值将根据回发参数重新生成),读取数据,解析数据,然后执行任何您想要的操作


如果您想要一个示例代码(ASP.Net C#),请大声说:)

我不得不注意,您使用的是
行(1)
而不是
行(I)
在VB中。无论如何,你不能像那样用Javascript更改HTML;更改不会在提交时传回服务器。将数据也放在值或隐藏输入或其他内容中。好的,我会找到其他方法..谢谢。我发现我有一个输入错误,我当然是指隐藏输入的值。
,并使用Javascript填充它的value属性。(不要使用Javascript从头开始创建一个新的
,并给t一个
runat
属性。)遵循以下帖子:[如何将通过Javascript添加的表行发布到ASP.NET中的服务器?][1][1]:
<!-- language: lang-html -->

<table id="PopTable" class="imagetable" runat = "server" align="center">
    <tr>
        <th></th>
        <th>ShipTo</th>
        <th>CustName</th>
        <th>Alamat</th>
        <th>Dari</th>
        <th>Ke</th>
    </tr>
</table>
function AddRow(Shipid,custname, grup, valid, alamat)
{
    var temp11;
    valid = "YES";
    for (var i = 0; i < arrloc.length; i++)
    {
        temp11 = arrloc[i];
        if (Shipid == temp11){ valid = "No" };
    }
    if (valid == "YES"){
        var table = document.getElementById("PopTable");
        var row = table.insertRow(1);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);
        var cell4 = row.insertCell(3);
        var cell5 = row.insertCell(4);
        var cell6 = row.insertCell(5);
        if (grup == "")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "DK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LK";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LJ";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LD";
            option2.value = "4";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LP";
            option2.value = "5";
            element2.add(option2, null); }
        else if (grup == "DK")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "LK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LJ";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LD";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LP";
            option2.value = "4";
            element2.add(option2, null);}
        else if (grup == "LK")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "DK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LJ";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LD";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LP";
            option2.value = "4";
            element2.add(option2, null);}
        else if (grup == "LJ")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "DK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LK";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LD";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LP";
            option2.value = "4";
            element2.add(option2, null);}
        else if (grup == "LD")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "DK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LJ";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LK";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LP";
            option2.value = "4";
            element2.add(option2, null);}
        else if (grup == "LP")
        {
            var element2 = document.createElement("select");
            var option1 = document.createElement("option");
            option1.innerHTML = "DK";
            option1.value = "1";
            element2.add(option1, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LJ";
            option2.value = "2";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LD";
            option2.value = "3";
            element2.add(option2, null);
            var option2 = document.createElement("option");
            option2.innerHTML = "LK";
            option2.value = "4";
            element2.add(option2, null);}


        var element3 = document.createElement("input");
        element3.type = "checkbox";

        cell5.innerHTML = grup;
        cell4.innerHTML = alamat;
        cell6.appendChild(element2);
        cell2.innerHTML = Shipid;
        cell3.innerHTML = custname;
        cell1.appendChild(element3);

        arrloc.push(Shipid);}
    }
For i = 0 To PopTable.Rows.Count

    shipid = PopTable.Rows(1).Cells(1).InnerText
    'shipid = PopTable.Rows(1).Cells(1).innerhtml -- i also try this

    stringsql = "insert into cs_graph_ubah_dklk_log (shipid, dklk_awal, dklk_ubah, tgl_ubah, user_name, flag_proses, mid ) values ('" & shipid & "', '" & dklk_awal & "','" & dklk_ubah & "', sysdate , '" & user & "', 1, cs_graph_ubah_dklk_seq.nextval ) "
    dtsql = SPKOraConnGetDataWS.CreateDataSet(stringsql)

Next