Есть ли способ иметь sqldatasource фильтр, когда его спросят, но по умолчанию выбрать * - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть список, связанный с sqldatasource. Я знаю, как отфильтровать результаты, привязав sqldatasource к значению элемента управления, но я хочу, чтобы sqldatasource выбирал все, когда ничего в элементе управления не выбрано. Как я могу это сделать?

Имейте в виду, что у меня есть просмотр списка, поскольку я знаю, что это может создать проблемы для простых решений. Например, если я обработаю начальную загрузку с помощью! Page.IsPostback, начальное содержимое списка будет в порядке, но если я нажму на страницу в элементе управления пейджером, она перезагрузит сетку с любым именем, выбранным в раскрывающемся списке фильтра. .

1 Ответ

1 голос
/ 24 февраля 2012

Вы можете использовать событие SqlDataSource Selecting для изменения параметров перед выполнением команды выбора.

C #

   protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {
        if (DropDownList1.SelectedValue != "thisValue")
        {
            // Do what you want with the datasource here. In the example I change the
            // value of a parameter
            e.Command.Parameters["@parameter"].Value = DropDownList1.SelectedValue;
        }
    }

VB

Protected Sub SqlDataSource1_Selecting(sender As Object, e As SqlDataSourceSelectingEventArgs)
    If DropDownList1.SelectedValue <> "thisValue" Then
        e.Command.Parameters("@parameter").Value = DropDownList1.SelectedValue
    End If
End Sub

Вот статья MSDN о SqlDataSource.Selecting Event

...