我有一个使用SQL数据库生成的表并放入asp:Repeater
以显示数据。
表格显示正常,包含所有相关数据。一切都很开心!
但是表中的信息有时可能需要由用户更改。我想出了一个想法,让表格中的每个CELL成为一个文本框,而不是单独的页面或甚至是用户可以提交编辑的单独部分。在页面上,每个文本框的文本都设置为数据库值。
因此,除了每个单元格都是可编辑的,因此表格将显示并且完全相同。但我无法让它发挥作用。到目前为止我得到的是:
<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]标签之间我确实只有&lt;%#Eval(“variable”)%&gt;声明。所以我把它改成了asp:Textbox标签。
我收到一条错误消息,指出服务器标签格式不正确。
如果有人知道解决方法或更好的方法,我们将非常感激:)
P.S。没有引用asp:DataTable
或GridView。我对它们不感兴趣。
答案 0 :(得分:1)
您收到“格式不正确”错误的原因是您在eval语句周围使用双引号并在其中使用。只需使用单引号作为周围的引号。
<td>
<asp:TextBox
ID="companyName"
runat="server"
AutoPostBack="true"
Text='<%# Eval("_companyName") %>'
>
</asp:TextBox>
</td>
然而,这并不能解决您尝试通过转发器编辑多个项目的整体问题。如果修改了这些框中的任何文本,您将如何知道它属于哪一行?
玩得开心,但我怀疑你会发现自己对DataTable和GridView感兴趣。