我想用javascript向表中添加行,但我也希望能够找到回发后这些行的内容。有没有办法做到这一点?
我还希望能够从服务器填充表格中的原始行(我正在考虑使用转发器)。是否仍然可以这样做?
这不是一个描述,但我认为它涵盖了它......
代码目前看起来像这样
<table id="myTable">
<tr> <td> some static row </td> </tr>
<asp:repeater id="rptTest" runat="server">
<HeaderTemplate>
<tr class="dgheader">
<th> head1 </th>
<th> head2 </th>
<th></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="<%# (Container.ItemIndex%2 == 0) ? "dgitem" : "dgalternatingitem" %>">
<td><%# Eval("val1") %> </td>
<td><%# Eval("val2") %> </td>
<td><a class="dgdeletebutton" href="javascript:delete(this)"></a></td>
</tr>
</ItemTemplate>
</asp:repeater>
</table>
目前我所想知道的是,在服务器方面,我可以得到一个版本的表,其中包含了我做客户端的任何更改。
答案 0 :(得分:1)
为了以您描述的方式从客户端获取任何信息,您需要在表单提交中包含一个字段。
您可能想要隐藏字段。每次添加行时,都要为要捕获的每个值添加隐藏字段(例如val1和val2)或者有一个隐藏字段,并且在添加行时,将所需信息附加到现有行。
我会警告不要直接发布html,你可能只需要值而不是完整标记,而且你很可能不想清理html并解析它以获取你想要的信息。
因此,为了让您领先一步,您可以添加隐藏的输入:
<tr class="<%# (Container.ItemIndex%2 == 0) ? "dgitem" : "dgalternatingitem" %>">
<input type="hidden" name="Row[1].val1" value="myvalue" />
<td><%# Eval("val1") %> </td>
<input type="hidden" name="Row[1].val2" value="myvalue" />
<td><%# Eval("val2") %> </td>
<td><a class="dgdeletebutton" href="javascript:delete(this)"></a></td>
</tr>
然后,您可以在后端获取提交的值:
HttpContext.Current.Request.Form["Row[1].val1"]
这是来自内存,上面的行可能不正确。