我正在用 Asp.Net 1.1 开发一个网页,并有一个允许用户添加、编辑和删除数据库记录的 DataGrid。页脚行包含允许添加新记录的文本框。
对于每一列,我定义了 <ItemTemplate>、<EditItemTemplate> 和 <FooterItemTemplate> 元素。我的 aspx 标记中的 FooterItemTemplate 和 EditItemTemplate 元素都包含 RequiredFieldValidator 控件以及文本框。(见下文)
<asp:TemplateColumn HeaderText="Offer Code">
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.OfferCode") %>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtNewOfferCode" Runat="server" />
<asp:RequiredFieldValidator ID="reqNewOfferCode" ControlToValidate="txtNewOfferCode" Display="None" ErrorMessage="Please specify 'Offer Code'" Runat="server" />
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox id=txtOfferCode Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.OfferCode") %>' />
<asp:RequiredFieldValidator ID="reqOfferCode" ControlToValidate="txtOfferCode" Display="None" ErrorMessage="Please specify 'Offer Code'" Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
我遇到的问题是,当您尝试编辑现有记录时,页脚行中的空白字段会阻止验证,因此会阻止回发和更新所选行。