0

我正在用 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>

我遇到的问题是,当您尝试编辑现有记录时,页脚行中的空白字段会阻止验证,因此会阻止回发和更新所选行。

4

1 回答 1

2

通常,GridView 无法插入新行。你做到了,使用页脚行。当然,当您提交 GridView 时,验证器会阻止该过程,因为该字段为空。当您的 GridView 进入编辑模式并禁用页脚的验证器时,您应该捕获该事件。离开 GridView 编辑模式时不要忘记启用它们。

于 2009-02-17T15:34:05.030 回答