Ejemplo n.º 1
0
        //5.检索数据
        protected override void OnTextChanged(EventArgs e)
        {
            if (!isSetValue && IsPage == true)
            {
                if (queryFields != null)
                {
                    //throw new Exception("没有为选项卡指定查询字段QueryFields属性");
                    //return;

                    string filterString = "";
                    string s1           = "%";
                    string s2           = "%";
                    if (matchMode == MatchModes.ByFirstChar)
                    {
                        s1 = "";
                    }

                    string strKey = FormatKeyword(this.Text);

                    for (int i = 0; i < queryFields.Length - 1; i++)
                    {
                        filterString += queryFields[i] + " like '" + s1 + strKey + s2 + "' or ";
                    }
                    filterString += queryFields[queryFields.Length - 1] + " like '" + s1 + strKey + s2 + "'";

                    if (pressSpacekey)
                    {
                        filterString = "";
                        for (int i = 0; i < queryFields.Length - 1; i++)
                        {
                            filterString += queryFields[i] + " = '" + strKey + "' or ";
                        }
                        filterString += queryFields[queryFields.Length - 1] + " = '" + strKey + "'";
                    }

                    if (_source != null)
                    {
                        DataView dv = new DataView(_source);
                        dv.RowFilter = filterString;
                        cardDataGrid.textpager.DataSource = dv.ToTable();

                        //DataRow[] drs = _source.Select(filterString);
                        //DataTable dt = _source.Clone();
                        //for (int i = 0; i < drs.Length; i++)
                        //{
                        //    dt.Rows.Add(drs[i].ItemArray);
                        //}
                        //if (dt.Columns.Contains("OrderBy"))
                        //{
                        //    DataView dv = dt.DefaultView;
                        //    dv.Sort = "OrderBy Asc";
                        //    DataTable dt2 = dv.ToTable();
                        //    cardDataGrid.textpager.DataSource = dt2;
                        //}
                        //else
                        //    cardDataGrid.textpager.DataSource = dt;

                        //if (dt.Rows.Count > 0)
                        //    if (cardDataGrid.textdataGrid.CurrentCell != null)
                        //        cardDataGrid.textdataGrid.CurrentCell = cardDataGrid.textdataGrid[0, 0];
                    }
                }
            }

            if (IsPage == false)
            {
                cardDataGrid.textpager.pageNo = 1;
                //PageNoChanged(this, 1, textpager.pageSize);
            }
            if (this.Focused)
            {
                SetSelectionCardLocation();
                cardDataGrid.Show();
            }
            base.OnTextChanged(e);
            if (this.Text.Trim() == "")
            {
                memberValue = null;
            }
        }