/ / C # przechodzenie przez wiersze tabeli HTML dodane przez javascript - c #, javascript, asp.net, html-table

Pętla C # poprzez wiersze tabeli HTML dodane przez javascript - c #, javascript, asp.net, html-table

Próbuję przechodzić przez tabelę HTML z runat = "server" - ale dane są dynamicznie dodawane za pośrednictwem javascript.

<table runat="server" id="confirmCartTable" class="confirmCartTable cartGrid table">
<tr>
<th>ID</th>
<th>Product</th>
<th>Price</th>
<th>Quantity</th>
<th>Total</th>
</tr>
</table>

Wyświetla się dobrze z 3 rzędami pod nim. Ale kiedy używam pętli C #:

    //get the datatable consisting of ProductID, Quantity, Price
for(int i = 0;i < confirmCartTable.Rows.Count; i++)
{
**//confirmCartTable.Rows.Count is only 1, table headers only**
HtmlTableRow row = confirmCartTable.Rows[i];
dr = dt.NewRow();
dr["ProductID"] = row.Cells[0].Controls[0];
dr["Quantity"] = row.Cells[2].Controls[0];
dr["Price"] = row.Cells[3].Controls[0];
dt.Rows.Add(dr);
}

Czy to dlatego, że wiersze są dodawane dynamicznie przez JS? Jakie może być na to rozwiązanie?

W powyższej pętli muszę dodać ją do DataTable. Mam row.Cells [i] .Controls [0] as System.Web.UI.LiteralControl .. Próbowałem używać

StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);

HtmlTable.RenderControl(hw);
dr[i] = sb.ToString();

Działa, ale to zbyt długo (muszę to zrobić dla wszystkich 3 kolumn ...)

Podsumowując problem,

  1. C # HtmlTable nie przechwytuje danych dodawanych przez JS
  2. Zdobądź wewnętrzny html każdego HtmlTableRow

Odpowiedzi:

0 dla odpowiedzi № 1

Problem z twoją logiką polega na tym, że jesteśdynamiczne dodawanie wierszy przez javascript zostanie utracone na poczcie zwrotnej. dom zarządzany przez javascript nie jest odsyłany, ponieważ nie jest polem wejściowym. Można to obejść, ukrywając pole z uruchomieniem na serwerze. na post back ustaw wartość hiddenfield z innerhtml tabeli. na serveide przeszukuj to ukryte pole, aby uzyskać kod HTML. mam nadzieję, że to jest jasne