5

我有一个 FormView,其中有几个字段。这些字段应该由 asp.net 验证器进行验证,如下所示:

<asp:FormView ID="OrderDetails" runat="server" DataKeyNames="ID" DataSourceID="DS_Order" DefaultMode="Edit" AutoGenerateRows="false" ClientIDMode="Static" RenderOuterTable="false">
    <EditItemTemplate>
        <asp:TextBox ID="EinkaufsauftragsNr" runat="server" ClientIDMode="Static" Text='<%# Bind("EinkaufsauftragsNr") %>'/>
        <asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" ValidationGroup="EditValidation" Display="Dynamic"
                                    ControlToValidate="EinkaufsauftragsNr" ErrorMessage="Nur Ganzzahlen erlaubt." CssClass="validator" />
        .....
    </EditItemTemplate>
</FormView>

但是当我执行这个时,我得到:“输入参数'controlId'不能是空字符串。” 当我删除验证器时,错误消息也会消失。

在网上搜索了这个问题后,我认为问题是在formview中找不到控件,所以我将clientidmode =“static”放在那里->但这并没有解决我的问题。你对我如何解决这个问题还有其他建议吗?

4

1 回答 1

9

您没有将 id 分配给 CompareValidator 控件,您have to assign ID to asp:CompareValidator

改变

<asp:CompareValidator runat="server" Operator="DataTypeCheck"
    Type="Integer" ValidationGroup="EditValidation" Display="Dynamic"
    ControlToValidate="EinkaufsauftragsNr" ErrorMessage="Nur Ganzzahlen erlaubt."
    CssClass="validator" />

<asp:CompareValidator ID="SomeID" runat="server" Operator="DataTypeCheck"
    Type="Integer" ValidationGroup="EditValidation" Display="Dynamic"
    ControlToValidate="EinkaufsauftragsNr" ErrorMessage="Nur Ganzzahlen erlaubt."
    CssClass="validator" />
于 2012-11-28T14:58:34.157 回答