private void Detail_Click(object sender, RoutedEventArgs e) { var tabItem = (ListGridTab.SelectedItem as TabItem); if (tabItem != null) { var panel = tabItem.Content as StackPanel; if (panel != null) { var grid = panel.Children.OfType<DataGrid>().FirstOrDefault(); if (grid != null) { if (grid.SelectedItem == null) { MessageBox.Show("����ѡ��һ�У�"); return; } else { //������ var obj = grid.SelectedItem; //ԭʼ���� var table = grid.Tag as TableData; //���ҵ�ID�� var idProperty = obj.GetType().GetProperty(table.PkColumnDisplayName); if (idProperty != null) { //ȡֵ var id = idProperty.GetValue(obj, null); if (id as string != null) { //���Ը�������ʾ���ҵ����ݿ��� var databaseName = ""; Table t = null; foreach (var tt in table.Tables) { var data = tt.Data; foreach (var d in data) { if (d.ContainsKey(table.PkColumnDisplayName) && d[table.PkColumnDisplayName].ToString() == id.ToString()) { databaseName = tt.DatabaseName; t = tt; break; } } if (!string.IsNullOrEmpty(databaseName)) break; } ViewDetailData c = new ViewDetailData(); var root = Application.Current.RootVisual as FrameworkElement; c.DetailCondition = new DetailCondition { DatabasePrefix = t.DatabasePrefix, ID = id.ToString(), TableName = table.TableName, PkColumnName = table.PkColumnName, DatabaseName = databaseName, }; c.Width = root.ActualWidth * 0.98; c.Height = root.ActualHeight * 0.98; c.HorizontalAlignment = HorizontalAlignment.Center; c.VerticalAlignment = VerticalAlignment.Center; c.Show(); service.LogAsync(new OperationLog { AccountName = Data.AdminConfigurationItem.UserName, AccountRealName = Data.AdminConfigurationItem.RealName, CategoryName = t.DatabasePrefix.Substring(0, t.DatabasePrefix.IndexOf("__")), DatabaseName = t.DatabasePrefix.Substring(t.DatabasePrefix.IndexOf("__") + 2), TableName = table.TableName, Action = "�鿴��ϸ��ͼ", ActionMemo = string.Format("����������{0} ������{0}", table.PkColumnName, id.ToString()), }); } } } } } } }
private void SearchDetailOnlyById_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(DetailId.Text)) { MessageBox.Show("请填写ID"); DetailId.Focus(); return; } string categoryName = ""; string databaseName = ""; var databasePrefix = GetDatabasePrefix(ref categoryName, ref databaseName); if (databasePrefix != null) { ViewDetailData c = new ViewDetailData(); var root = Application.Current.RootVisual as FrameworkElement; c.DetailCondition = new DetailCondition { DatabasePrefix = databasePrefix, ID = DetailId.Text, }; c.Width = root.ActualWidth * 0.98; c.Height = root.ActualHeight * 0.98; c.HorizontalAlignment = HorizontalAlignment.Center; c.VerticalAlignment = VerticalAlignment.Center; c.Show(); service.LogAsync(new OperationLog { AccountName = Data.AdminConfigurationItem.UserName, AccountRealName = Data.AdminConfigurationItem.RealName, CategoryName = categoryName, DatabaseName = databaseName, TableName = "", Action = "根据ID查看", ActionMemo = string.Format("ID:{0}", DetailId.Text), }); } }
private void Detail_Click(object sender, RoutedEventArgs e) { var tabItem = (ListGridTab.SelectedItem as TabItem); if (tabItem != null) { var panel = tabItem.Content as StackPanel; if (panel != null) { var grid = panel.Children.OfType <DataGrid>().FirstOrDefault(); if (grid != null) { if (grid.SelectedItem == null) { MessageBox.Show("请先选择一行!"); return; } else { //数据行 var obj = grid.SelectedItem; //原始数据 var table = grid.Tag as TableData; //先找到ID列 var idProperty = obj.GetType().GetProperty(table.PkColumnDisplayName); if (idProperty != null) { //取值 var id = idProperty.GetValue(obj, null); if (id as string != null) { //尝试根据列显示名找到数据库名 var databaseName = ""; Table t = null; foreach (var tt in table.Tables) { var data = tt.Data; foreach (var d in data) { if (d.ContainsKey(table.PkColumnDisplayName) && d[table.PkColumnDisplayName].ToString() == id.ToString()) { databaseName = tt.DatabaseName; t = tt; break; } } if (!string.IsNullOrEmpty(databaseName)) { break; } } ViewDetailData c = new ViewDetailData(); var root = Application.Current.RootVisual as FrameworkElement; c.DetailCondition = new DetailCondition { DatabasePrefix = t.DatabasePrefix, ID = id.ToString(), TableName = table.TableName, PkColumnName = table.PkColumnName, DatabaseName = databaseName, }; c.Width = root.ActualWidth * 0.98; c.Height = root.ActualHeight * 0.98; c.HorizontalAlignment = HorizontalAlignment.Center; c.VerticalAlignment = VerticalAlignment.Center; c.Show(); service.LogAsync(new OperationLog { AccountName = Data.AdminConfigurationItem.UserName, AccountRealName = Data.AdminConfigurationItem.RealName, CategoryName = t.DatabasePrefix.Substring(0, t.DatabasePrefix.IndexOf("__")), DatabaseName = t.DatabasePrefix.Substring(t.DatabasePrefix.IndexOf("__") + 2), TableName = table.TableName, Action = "查看详细视图", ActionMemo = string.Format("主键列名:{0} 主键:{0}", table.PkColumnName, id.ToString()), }); } } } } } } }
private void ShowDetailView(DetailCondition dc, string categoryName, string databaseName) { ViewDetailData c = new ViewDetailData(); var root = Application.Current.RootVisual as FrameworkElement; c.DetailCondition = dc; c.Width = root.ActualWidth * 0.98; c.Height = root.ActualHeight * 0.98; c.HorizontalAlignment = HorizontalAlignment.Center; c.VerticalAlignment = VerticalAlignment.Center; c.Show(); service.LogAsync(new OperationLog { AccountName = Data.AdminConfigurationItem.UserName, AccountRealName = Data.AdminConfigurationItem.RealName, CategoryName = categoryName, DatabaseName = databaseName, TableName = dc.TableName, Action = "查看详细视图", ActionMemo = string.Format("主键列名:{0} 主键:{0}", dc.PkColumnName, dc.ID), }); }