Devexpress 网格 - 如果列最初隐藏,标题过滤器不起作用

发布于 2024-10-02 20:52:45 字数 543 浏览 0 评论 0原文

我正在使用 DevExpress 网格,并且尝试获取“国家/地区”列以正确显示标题过滤器:

<dx:GridViewDataColumn Caption="Country" FieldName="CountryName" 
    ShowInCustomizationForm="True" Visible="false">
    <Settings AllowHeaderFilter="True"/>
</dx:GridViewDataColumn>

如果“国家/地区”列设置为 Visible=“true”,则标题过滤器将按其应有的方式显示(它显示值选项列表)。但是,我希望“国家/地区”列最初隐藏,但在自定义窗口中可用(如上面的代码所示)。在这种情况下,当将该列拖到“自定义”窗口之外并进入网格并单击标题筛选器时,会遇到 Javascript 错误:

element is null element.addEventListener(eventName, func, true);

这是一个已知的错误吗?有什么解决方法吗?

I'm using a DevExpress grid and I'm trying to get a 'Country' column to display the header filter properly:

<dx:GridViewDataColumn Caption="Country" FieldName="CountryName" 
    ShowInCustomizationForm="True" Visible="false">
    <Settings AllowHeaderFilter="True"/>
</dx:GridViewDataColumn>

If the 'Country' column is set to Visible='true', then the header filter is displayed as it should(it shows the value option list). However, I want the 'Country' column to be initially hidden, but available in a Customization window(like in the code above). In this case, when the column is dragged outside the Customization window and into the grid and the header filter is clicked, a Javascript error is encountered:

element is null
element.addEventListener(eventName, func, true);

Is this a known bug? Are there any workarounds?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

短叹 2024-10-09 20:52:45

将 ASPxGridView.Settings.ShowHeaderFilterButton 属性设置为 true 可解决此问题。

以下标记对我来说效果很好(我使用的是 DXperience 10.1.7):

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/nwind.mdb"
    SelectCommand="SELECT * FROM [Categories]"></asp:AccessDataSource>
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" ClientInstanceName="grid"
    DataSourceID="AccessDataSource1" KeyFieldName="CategoryID">
    <SettingsCustomizationWindow Enabled="True" />
    <Columns>
        <dx:GridViewDataTextColumn FieldName="CategoryID" ReadOnly="True" VisibleIndex="0">
            <EditFormSettings Visible="False"/>
            <Settings AllowHeaderFilter="False" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="CategoryName" Visible="False" VisibleIndex="1">
            <Settings AllowHeaderFilter="True" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="Description" VisibleIndex="2">
        <Settings AllowHeaderFilter="False" />
        </dx:GridViewDataTextColumn>
    </Columns>
    <Settings ShowHeaderFilterButton="True" />
</dx:ASPxGridView>

Set the ASPxGridView.Settings.ShowHeaderFilterButton property to true to resolve this problem.

The following markup works fine for me (I am using DXperience 10.1.7):

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/nwind.mdb"
    SelectCommand="SELECT * FROM [Categories]"></asp:AccessDataSource>
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" ClientInstanceName="grid"
    DataSourceID="AccessDataSource1" KeyFieldName="CategoryID">
    <SettingsCustomizationWindow Enabled="True" />
    <Columns>
        <dx:GridViewDataTextColumn FieldName="CategoryID" ReadOnly="True" VisibleIndex="0">
            <EditFormSettings Visible="False"/>
            <Settings AllowHeaderFilter="False" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="CategoryName" Visible="False" VisibleIndex="1">
            <Settings AllowHeaderFilter="True" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="Description" VisibleIndex="2">
        <Settings AllowHeaderFilter="False" />
        </dx:GridViewDataTextColumn>
    </Columns>
    <Settings ShowHeaderFilterButton="True" />
</dx:ASPxGridView>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文