コード例 #1
0
        /// <summary>
        /// 查询完毕回调
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NextPageSelectCallback(object sender, UploadStringCompletedEventArgs e)
        {
            CMapSelectAndGetAtt selRlt = m_catalog.ActiveMapDoc.OnSelect(e);
            TabItem             item;
            string   name;
            DataGrid grid;

            for (int i = 0; i < selRlt.Count[0].Length; i++)
            {
                if (selRlt.AttDS[0].attTables != null && selRlt.AttDS[0].attTables[i] != null && selRlt.AttDS[0].attTables[i].Rows != null)//selRlt.Count[0][i] > 0)
                {
                    name = activeMapDoc.GetLayerInfo(i).LayerDataName;
                    //if (this.FindName(name) == null)
                    //{
                    //    item = new TabItem()
                    //    {
                    //        Header = name,
                    //        Name = name
                    //    };
                    //    grid = new DataGrid()
                    //    {
                    //        Height = 221,
                    //        Width = 493,
                    //        AutoGenerateColumns = false,
                    //        IsReadOnly = true
                    //    };
                    //    item.Content = grid;
                    //    tabControl1.Items.Add(item);
                    //}
                    //else
                    {
                        item = this.FindName(name) as TabItem;
                        grid = item.Content as DataGrid;
                        grid.Columns.Clear();
                        grid.ItemsSource = null;
                    }
                    List <string> addColumnlHeadArr = new List <string>();
                    addColumnlHeadArr.Add("FID");
                    string[][] arr = new string[/*selRlt.Count[0][i]*/ selRlt.AttDS[0].attTables[i].Rows.Length + 1][];
                    arr[0] = selRlt.AttDS[0].attTables[i].Columns.FldName;

                    List <string[]> addColumnlContentArr = new List <string[]>();
                    string[]        fidArr = new string[selRlt.AttDS[0].attTables[i].Rows.Length];
                    for (int j = 0; j < selRlt.AttDS[0].attTables[i].Rows.Length; j++)
                    {
                        fidArr[j]  = selRlt.AttDS[0].attTables[i].Rows[j].FID.ToString();
                        arr[j + 1] = selRlt.AttDS[0].attTables[i].Rows[j].Values;
                    }
                    addColumnlContentArr.Add(fidArr);
                    BindClass bingclass = new BindClass();
                    bingclass.ColumnDisplay(grid, arr, addColumnlHeadArr, addColumnlContentArr);
                }
            }
        }
コード例 #2
0
        private void setFeature(object sender, UploadStringCompletedEventArgs e)
        {
            CMapSelectAndGetAtt obj = this.IMSCatalog.ActiveMapDoc.OnSelect(e);

            if (obj == null)
            {
                MessageBox.Show("未获取到要素");
                this.m_graphicsLayer.DrawingType         = DrawingType.Point;
                this.m_graphicsLayer.DrawingOverCallback = new DrawingEventHandler(Drawpoint_callback);
                return;
            }
            CAttDataTable curRltTable = obj.AttDS[0].attTables[this.IMSCatalog.ActiveMapDoc.ActiveLayerIndex];

            if (obj.AttDS[0].attTables[this.IMSCatalog.ActiveMapDoc.ActiveLayerIndex] != null)
            {
                CAttDataRow[] curRltRows = obj.AttDS[0].attTables[this.IMSCatalog.ActiveMapDoc.ActiveLayerIndex].Rows;
                if (curRltRows == null)
                {
                    MessageBox.Show("未获取到要素");
                    this.m_graphicsLayer.DrawingType         = DrawingType.Point;
                    this.m_graphicsLayer.DrawingOverCallback = new DrawingEventHandler(Drawpoint_callback);
                    return;
                }
                CAttDataRow row    = curRltTable.Rows[0] as CAttDataRow;
                CGetObjByID getGeo = new CGetObjByID();
                getGeo.FeatureID  = row.FID;
                getGeo.LayerIndex = this.IMSCatalog.ActiveMapDoc.ActiveLayerIndex;
                this.IMSCatalog.ActiveMapDoc.GetGeomByID(getGeo, flashFeature);
            }
            else
            {
                MessageBox.Show("未获取到要素");
                this.m_graphicsLayer.DrawingType         = DrawingType.Point;
                this.m_graphicsLayer.DrawingOverCallback = new DrawingEventHandler(Drawpoint_callback);
            }
        }
コード例 #3
0
        /// <summary>
        /// 查询完毕回调
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SelectCallback(object sender, UploadStringCompletedEventArgs e)
        {
            //if (activeMapDoc != null && !activeMapDoc.Equals(m_catalog.ActiveMapDoc))
            //{//不是同一个图层,清除原来的结果
            //    tabControl1.Items.Clear();
            //}
            dataPager1.DataContext = null;
            tabControl1.Items.Clear();
            pageSize     = m_catalog.ActiveMapDoc.GetPageSize();
            activeMapDoc = m_catalog.ActiveMapDoc;
            CMapSelectAndGetAtt selRlt = m_catalog.ActiveMapDoc.OnSelect(e);

            _lastSelRlt = selRlt;
            TabItem  item;
            string   name;
            DataGrid grid     = null;
            int      maxCount = 0;

            for (int i = 0; i < selRlt.Count[0].Length; i++)
            {
                if (selRlt.Count[0][i] > 0 && selRlt.AttDS[0].attTables != null && selRlt.AttDS[0].attTables[i].Rows != null)
                {
                    name = activeMapDoc.GetLayerInfo(i).LayerDataName;
                    if (this.FindName(name) == null)
                    {
                        item = new TabItem()
                        {
                            Header = name,
                            Name   = name
                        };
                        grid = new DataGrid()
                        {
                            Name   = "datagrid" + name + "_" + i,
                            Height = 221,
                            Width  = 493,
                            AutoGenerateColumns = false,
                            IsReadOnly          = true,
                            Tag = new TmpInfo()
                            {
                                LayerIndex = i
                            }
                        };
                        grid.MouseLeftButtonUp += new MouseButtonEventHandler(DataGrid_MouseLeftButtonUp);
                        grid.LoadingRow        += new EventHandler <DataGridRowEventArgs>(DataGrid_LoadingRow);
                        item.Content            = grid;
                        if (ContextMenuService.GetContextMenu(grid) == null)
                        {
                            ContextMenu contextMenu = GetContexMenu(i);
                            ContextMenuService.SetContextMenu(grid, contextMenu);
                        }
                        tabControl1.Items.Add(item);
                    }
                    else
                    {
                        item = this.FindName(name) as TabItem;
                        grid = item.Content as DataGrid;
                        grid.Columns.Clear();
                        grid.ItemsSource = null;
                    }
                    List <string> addColumnlHeadArr = new List <string>();
                    addColumnlHeadArr.Add("FID");
                    string[][] arr = new string[/*selRlt.Count[0][i]*/ selRlt.AttDS[0].attTables[i].Rows.Length + 1][];
                    arr[0] = selRlt.AttDS[0].attTables[i].Columns.FldName;

                    List <string[]> addColumnlContentArr = new List <string[]>();
                    string[]        fidArr = new string[selRlt.AttDS[0].attTables[i].Rows.Length];
                    for (int j = 0; j < selRlt.AttDS[0].attTables[i].Rows.Length; j++)
                    {
                        fidArr[j]  = selRlt.AttDS[0].attTables[i].Rows[j].FID.ToString();
                        arr[j + 1] = selRlt.AttDS[0].attTables[i].Rows[j].Values;
                    }
                    addColumnlContentArr.Add(fidArr);
                    if (maxCount < selRlt.Count[0][i])
                    {
                        maxCount = selRlt.Count[0][i];
                    }
                    BindClass bingclass = new BindClass();
                    dataPager1.DataContext = new PagedCollectionView(bingclass.ColumnDisplay(grid, arr, addColumnlHeadArr, addColumnlContentArr));
                    item.IsSelected        = true;
                }
            }
            if (maxCount > 0)
            {
                dataPager1.PageSize          = (int)Math.Ceiling(Convert.ToDouble(pageSize * pageSize) / maxCount);
                dataPager1.PageIndexChanged += new EventHandler <EventArgs>(dataPager1_PageIndexChanged);
            }
            if (tabControl1.Items.Count <= 0) //&& grid != null && grid.ItemsSource == null)
            {
                m_graphicsLayer.MapContainer.SetErrorText("矢量文档查询结果为空,请检查图层是否设置为可查询状态或者输入条件是否正确后重试!");
            }
            //MessageBox.Show("没有查询到结果,请更换条件后重试!", "提示", MessageBoxButton.OK);
            else
            {
                this.Show();
            }
        }