У меня есть таблица, которая создается с использованием базы данных SQL и помещается в asp:Repeater
для отображения данных.
Таблица отображается нормально, со всеми соответствующими данными. Все счастливы!
Но информация в таблице может иногда изменяться пользователем. Вместо того, чтобы иметь отдельную страницу или даже отдельный раздел, где пользователь может вносить изменения, я предложил идею сделать каждую ячейку в таблице текстовым полем. И на странице, текст каждого текстового поля устанавливается в значения базы данных.
Таким образом, таблица будет отображаться и будет точно такой же, за исключением того, что каждая ячейка будет редактируемой. Но у меня проблемы с тем, чтобы заставить его работать. То, что у меня так далеко, это:
<asp:Repeater ID="rptPending" runat="server">
<HeaderTemplate>
<table id="tblPending" cellpadding="0" cellspacing="0" border="0" class="display">
<thead>
<tr>
<th>Company Name</th>
<th>Telephone</th>
<th>Fax Number</th>
<th>Address Line 1</th>
<th>Address Line 2</th>
<th>City</th>
<th>Postcode</th>
<th>Company User</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<form id="form" runat="server">
<tr>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_companyName") %>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_telephone")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_faxNo")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_addressLn1")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_addressLn2")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_city")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_postCode")%>"></asp:TextBox></td>
<td><asp:TextBox ID="companyName" runat="server" AutoPostBack="true" Text="<%# Eval("_name")%>"></asp:TextBox></td>
</tr>
</form>
</ItemTemplate>
<FooterTemplate>
</tbody> </table>
</FooterTemplate>
</asp:Repeater>
В методе Old между тегами [td] у меня буквально просто был оператор <% # Eval ("variable")%>. Поэтому я изменил его на тег asp: Textbox.
Я получаю сообщение о том, что серверный тег сформирован неправильно.
Если кто-нибудь знает обходной путь или лучший метод, он был бы очень признателен:)
p.s. Нет ссылок на asp:DataTable
или GridView. Я не заинтересован в них.