Фильтрация ASPxGridView с помощью ASPxDateEdit с использованием элемента управления - PullRequest
1 голос
/ 01 июля 2011

Я хочу отфильтровать сетку, выбрав дату и время в dateedit.Я положил кнопку, которая имеет элементы управления DataBind ().Запрос источника данных GridView имеет предложение WHERE.У него есть элемент управления, соединяющий сетку и дату.Когда я проверяю запрос, он работает нормально.Я включил событие ButtonClick и записал в него следующий код:

protected void ASPxButton2_Click(object sender, EventArgs e)
{
    DateEdit.DataBind();
    SQLDataSource.DataBind();
    ASPxGridView.DataBind();
}

Как видите, я связал все, что мне нужно.Но никакие элементы не отображаются, когда я выбираю дату и время и нажимаю кнопку.Я что-то пропустил?Я ценю, если вы поможете.

Ответы [ 2 ]

1 голос
/ 02 июля 2011

Я технический евангелист DevExpress ASP.NET, Мехул.

Есть много способов, как вы можете подойти к этому, но я рекомендую использовать элемент управления ASPxGridLookup, который дает вам сетку в раскрывающемся списке: http://demos.devexpress.com/ASPxGridViewDemos/ASPxGridLookup/FilterServerMode.aspx

Вы также можете использовать встроенные функции: http://www.devexpress.com/Support/Center/p/Q267406.aspx Или попробуйте этот пример: http://www.devexpress.com/Support/Center/e/E2040.aspx

Некоторые из них также могут вам помочь: http://search.devexpress.com/?q=filter+external&p=T4|P5|57

Чтобы ответить на исходный вопрос, в этом примере показано, как привязать данные по внешнему нажатию кнопки: http://www.devexpress.com/Support/Center/e/E1662.aspx

Спасибо, надеюсь, это поможет.

0 голосов
/ 02 июля 2011

К сожалению, вы не опубликовали код, показывающий, как настраивается SQLDataSource. Однако я попытался воспроизвести эту проблему и потерпел неудачу. Вот мой код:

<dx:ASPxGridView ID="gvSupply" ClientInstanceName="gvSupply" Width="100%" 
    DataSourceID="SqlDataSource3" KeyFieldName="OrderID" AutoGenerateColumns="False" runat="server">
    <Columns>
        <dx:GridViewDataTextColumn FieldName="OrderID" ReadOnly="True" VisibleIndex="0">
            <EditFormSettings Visible="False" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="CustomerID" VisibleIndex="1">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="EmployeeID" VisibleIndex="2">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataDateColumn FieldName="OrderDate" VisibleIndex="3">
        </dx:GridViewDataDateColumn>
    </Columns>
</dx:ASPxGridView>

<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Orders] WHERE ([OrderDate] = ?)">
            <SelectParameters>
                <asp:ControlParameter ControlID="ASPxDateEdit1" Name="OrderDate" PropertyName="Value"
                    Type="DateTime" />
            </SelectParameters>
        </asp:SqlDataSource> 


        <dx:ASPxDateEdit ID="ASPxDateEdit1" runat="server">
        </dx:ASPxDateEdit>

        <asp:Button ID="Button1" runat="server" Text="Button" />

Я проверил сетку с таблицей Orders из базы данных Northwind. Также для проверки вашего запроса я предлагаю вам обработать событие Выбор объекта SQLDataSource и проверить параметры e.Command и e.Argumets. Надеюсь, эта информация будет вам полезна.

...