簡體   English   中英

在回發中獲取客戶端HTML更改

[英]Get client side HTML changes on postback

我想使用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>

目前,我想知道的是,在服務器端,我如何獲得具有對客戶端所做的任何更改的表的版本。

為了以您描述的方式從客戶那里獲取任何信息,您需要在表單提交中包含一個字段。

您可能需要隱藏字段。 每次添加行時,要么為要捕獲的每個值(例如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"]

這是來自內存,上面的行可能不正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM