试试在模板列里面增加几个验证控件,分别验证行内的其他控件
<asp:TemplateColumn HeaderText="验证">
<ItemTemplate>
<asp:Label runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"
ControlToValidate="TextBox1" ValidationExpression="\d{2}"></asp:RegularExpressionValidator><asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" ErrorMessage="RegularExpressionValidator"
ControlToValidate="TextBox2" ValidationExpression="\d{6}"></asp:RegularExpressionValidator>
...
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="验证">
<ItemTemplate>
<asp:Label runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"
ControlToValidate="TextBox1" ValidationExpression="\d{2}"></asp:RegularExpressionValidator><asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" ErrorMessage="RegularExpressionValidator"
ControlToValidate="TextBox2" ValidationExpression="\d{6}"></asp:RegularExpressionValidator>
...
</EditItemTemplate>
</asp:TemplateColumn>
<ItemTemplate>
<asp:textbox id="tbDiscount" runat="server" style="TEXT-ALIGN: right" cssclass="text" maxlength="4" width="180" Text='<%# DataBinder.Eval(Container, "DataItem.rDiscount") %>'>
</asp:textbox>折
<asp:RegularExpressionValidator ID="revDiscount" Runat="server" ControlToValidate="tbDiscount" ErrorMessage="折扣率只能输入0至1之间的一位或两位小数;"
Display="None" ValidationExpression="(0.\d*)|(0)"></asp:RegularExpressionValidator>
</ItemTemplate>
//这里我应用过的。没有问题