RydenChoi Ответов: 1

Как отфильтровать datagridview по выбору поля со списком


Здравствуйте, я создаю программу с использованием Windows forms и уже построил несколько кодов, таких как этот

1. Напишите адрес сайта в текстовое поле, затем нажмите кнопку "Пуск", соответствующие данные показала в элементов datagridview.

2.у меня есть 6 DataGridViews. В первом DataGridView были показаны совпадающие данные(Шаг 1)
и потом, другие 5 элементов datagridview будет показано, как каскад ознакомьтесь сначала практическое руководство по строки
значение (webApplicationName)

код приведен ниже

А теперь я хочу добавить вот что
1. Добавить ComboBox и добавить некоторые условия, например, [показать все] и [см. Более 100ГБ ДБ]

2. Если я выбираю [см. общим объемом более 100 ГБ опция], в этом компоненте datagridview показал только совпавших строк.

3. Это означает, Я хочу, чтобы фильтровать datagridview при помощи выбора выпадающий список и источник данных-это уже

привязан, поэтому я не хочу менять источник данных....

Я пытаюсь найти combobox и DataGridView, но обычно они связаны с Combobox в DataGridView....

И как я могу получить значения первых элементов datagridview(в webApplicationName)

Пожалуйста, кто-нибудь, помогите мне.. - Понятия не имею...

Спасибо

Что я уже пробовал:

private void mtbtnStart_Click(object sender, EventArgs e)
        {
            string webApplicationName = string.Empty;
            string siteID = string.Empty;
            mtlblError.Text = "No record returned.";

            Migration_Status_DAC dac = new Migration_Status_DAC();
            DataSet ds = new DataSet();

            //Web Application           
            ds = dac.SelectWebApplicationStatus(mtextUrl.Text);
            DataTable dt = ds.Tables[0];
            

            if (ds != null && dt != null && dt.Rows.Count > 0)
            {
                webApplicationName = dt.Rows[0]["AppName"].ToString();
                mgrdWebApplication.DataSource = dt;

                //Content Database
                ds = dac.SelectContentDatabaseStatus(webApplicationName);
                DataTable dtContent = ds.Tables[0];
                if (ds != null && dtContent != null && dtContent.Rows.Count > 0)
                {
                    mtlblError.Visible = false;
                    mgrdContentDatabase.DataSource = dtContent;

                    //SiteCollection
                    ds = dac.SelectSiteCollectionStatus(webApplicationName);
                    DataTable dtSiteCol = ds.Tables[0];
                    if (ds != null && dtSiteCol != null && dtSiteCol.Rows.Count > 0)
                    {
                        mgrdSiteCollections.DataSource = dtSiteCol;

                        //Sites
                        ds = dac.SelectSitesStatus(webApplicationName);
                        DataTable dtSites = ds.Tables[0];
                        if (ds != null && dtSites != null && dtSites.Rows.Count > 0)
                        {
                            siteID = dtSites.Rows[0]["SiteID"].ToString();
                            mgrdSites.DataSource = dtSites;

                            //Lists
                            ds = dac.SelectListsStatus(siteID);
                            DataTable dtLists = ds.Tables[0];
                            if (ds != null && dtLists != null && dtLists.Rows.Count > 0) 
                            {
                                mgrdLists.DataSource = dtLists;
                            }
                            //Document Library
                            ds = dac.SelectDocumentLibraryStatus(siteID);
                            DataTable dtDocLib = ds.Tables[0];
                            if (ds != null && dtDocLib != null && dtDocLib.Rows.Count > 0)
                            {
                                mgridDocumentLibrary.DataSource = dtDocLib;
                            }
                        }
                        else
                        {
                            mtlblError.Visible = true;
                        }
                    }
                    else
                    {
                        mtlblError.Visible = true;
                    }
                }
                else
                {
                    mtlblError.Visible = true;
                }

            }
            else
            {
                mgrdWebApplication.DataSource = null;
                mgrdContentDatabase.DataSource = null;
                mgrdSiteCollections.DataSource = null;
                mgrdSites.DataSource = null;
                mgrdLists.DataSource = null;
                mgridDocumentLibrary.DataSource = null;
            }

        }

1 Ответов

Рейтинг:
4

RydenChoi

Я нашел дорогу. Использование DataView

код такой

private void mtcbContentDBSearchCondition_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataView dvContentDatabase = new DataView(dtContent);

            if (mtcbContentDBSearchCondition.SelectedItem.ToString() == "All")
            {
                mgrdContentDatabase.DataSource = dtContent;
            }
            else
            {
                dvContentDatabase.RowFilter = string.Format("ContentDBSize >= 500000000", mtcbContentDBSearchCondition.SelectedItem.ToString());
                mgrdContentDatabase.DataSource = dvContentDatabase;
            }
        }