/// <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); } } }
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); } }
/// <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(); } }