2

我有一个奇怪的问题,但我找不到解决方案:我们使用 Infragistics WebDataGrid,我在其中设置了一个下拉列表和一个文本框。我为他们两个设置了一个requiredfieldvalidator

                            <asp:RequiredFieldValidator ValidationGroup="attrib" runat="server" ControlToValidate="ddlIndRoleAttribType" ToolTip="Attribute Type is not set." InitialValue="-- not selected --" Text="!" Display="Dynamic" />
                        </div>
                    </ItemTemplate>
                </ig:TemplateDataField>
                <ig:TemplateDataField Header-Text="Value" Key="IndRoleAttribVal" Width="50%">
                    <ItemTemplate>
                        <div>
                            <stgwc:TextEdit runat="server" Width="300px" ID="txtIndRoleAttribValue" />
                            <asp:RequiredFieldValidator ValidationGroup="attrib" runat="server" ControlToValidate="txtIndRoleAttribValue" Width="90%" ToolTip="Attribute Value is not set." Text="!" Display="Dynamic" />
                        </div>
                    </ItemTemplate>
                </ig:TemplateDataField>
                <ig:TemplateDataField Header-Text="Action" Key="IndRoleAttribAction" Width="40px">
                    <HeaderTemplate>                            
                        <stgwc:ImageLinkButton runat="server" ID="btnCreateNewAttribute" CausesValidation="false"  ImageUrl="~/Images/base/Icons/16x16/add2.png"
                            ToolTip="Add new Attribute" CommandName="Create" />

                        <stgwc:ImageLinkButton runat="server" ID="btnSaveAllAttributes" ValidationGroup="attrib" ImageUrl="~/Images/base/Icons/16x16/disk_green.png"
                            ToolTip="Save all Attributes"  CommandName="Save" />

                        <stgwc:ImageLinkButton runat="server" ID="btnCancelChanges" CausesValidation="false" ImageUrl="~/Images/base/Icons/16x16/undo.png"
                        CommandName="Cancel" ToolTip="Discard changes" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <stgwc:ImageLinkButton runat="server" ID="btnDeleteAttribute" CausesValidation="false" ImageUrl="~/Images/base/Icons/16x16/delete2.png"
                            ToolTip="Delete this Attribute"  CommandName="Delete" CommandArgument='<%# Bind("IR_ATTR_ID") %>' />
                    </ItemTemplate>
                </ig:TemplateDataField>
            </Columns>
        </stgwc:WebDataGrid>

如果应该创建一个新项目,我会进行回发,然后将其设置为数据源并重新加载它,如下所示:

        dgrIndRoleAttributes.ClearDataSource();
        dgrIndRoleAttributes.Rows.Clear();

        dgrIndRoleAttributes.DataSource = null;
        dgrIndRoleAttributes.DataSource =
            (Session[Constants.Session.RoleAttributes.ToString()] as List<TmpIndRoleAttribute>);
        dgrIndRoleAttributes.DataBind();

现在到了有趣的部分:当我在添加新行后按 Enter 键时,Firefox(只有 Firefox,在 IE 上它可以正常工作),似乎认为验证器组上的验证器attrib设置不正确,我需要单击两次,以使它保存。
如果我用萤火虫检查这个,我看到两个验证器都在显示:没有,所以这不是问题。如前所述,这只发生在 Firefox 上,我无法在一个小的测试样本上重现它。

有谁知道,什么可能导致这种行为?由于我不习惯这个验证器,我无法想象是什么导致了这个问题。

感谢您的回复!

马蒂亚斯

伊迪丝说:这是一个基础错误......另一个......我在这种情况下使用普通的asp文本框并用一些css更改样式。

4

0 回答 0