首先将一个数据源绑定到这个控件中,
GridMzPzQuery.DataSource=ds.tables[0];
如何将重新绑定到另一个表中如:
GridMzPzQuery.DataSource=ds.tables[1];
这2个表的结构不同,这时GridMzPzQuery显示的还是上一张表的结构,如何能清除上一次的表结构,然后重新绑定一个新的数据源。
GridMzPzQuery.DataSource=ds.tables[0];
如何将重新绑定到另一个表中如:
GridMzPzQuery.DataSource=ds.tables[1];
这2个表的结构不同,这时GridMzPzQuery显示的还是上一张表的结构,如何能清除上一次的表结构,然后重新绑定一个新的数据源。
gridView1 = new GridView(gridControl1);
gridControl1.MainView = gridView1; gridControl1.DataSource = dt;
gridControl1.ForceInitialize();
gridView1 = new GridView(gridControl1);
gridControl1.MainView = gridView1; gridControl1.DataSource = dt;
gridControl1.ForceInitialize();
dt是数据表,ds是结果集(dataset)
这此表都经检查有数据:
switch (lx)
{ case 1:
LblQueryName.Text = hzname.Substring(0, hzname.IndexOf(';'));
LblQuerylsh.Text = dt.Rows[0]["invoiceid"].ToString();
LblQueryPzh.Text = dt.Rows[0]["invoicenum"].ToString();
LblQueryLX.Text = GetHZLX(dt.Rows[0]["bxtypeid"].ToString());
LblQueryDepdes.Text = dt.Rows[0]["depdes"].ToString();
LblQueryDoc.Text = dt.Rows[0]["personna"].ToString();
LblQueryRevDate.Text = dt.Rows[0]["revdate"].ToString();
LblQueryFootDate.Text = dt.Rows[0]["footdate"].ToString();
LblQueryDelDate.Text = dt.Rows[0]["parkdate"].ToString();
LblQueryOperNa.Text = dt.Rows[0]["operna"].ToString();
GridMzPzQuery.DataSource = ds.Tables[1];
GridMzPzQuery.MainView.RefreshData ();
gridView8.Columns[0].Width = 130;
gridView8.Columns[1].Width = 250;
gridView8.Columns[2].Width = 90;
gridView8.Columns[3].Width = 90;
gridView8.Columns[4].Width = 90;
decimal money = 0.00M;
for (int i = 0; i < dt.Rows.Count; i++)
{
money = Convert.ToDecimal(dt.Rows[i]["revprice"]) + money;
}
LblQueryMoney.Text = string.Format(money.ToString(), "0.00");
if (ds.Tables[2].Rows.Count == 0)
{
LblQueryYBgr.Text = string.Empty;
LblQueryYBzh.Text = string.Empty;
}
else
{
LblQueryYBgr.Text = ds.Tables[2].Rows[0]["ybpersonprice"].ToString();
LblQueryYBzh.Text = ds.Tables[2].Rows[0]["ybaccount"].ToString();
LblQueryName.Text = ds.Tables[2].Rows[0]["name"].ToString();
}
break;
case 2: LblQueryName.Text = hzname.Substring(0, hzname.IndexOf(';'));
LblQuerylsh.Text = dt.Rows[0]["reginum"].ToString();
LblQueryPzh.Text = LblQuerylsh.Text;//dt.Rows[0]["invoicenum"].ToString();
LblQueryLX.Text = "自费";// GetHZLX(dt.Rows[0]["bxtypeid"].ToString());
LblQueryDepdes.Text = dt.Rows[0]["depdes"].ToString();
LblQueryDoc.Text = dt.Rows[0]["typedes"].ToString();
LblQueryRevDate.Text = dt.Rows[0]["regidate"].ToString();
LblQueryFootDate.Text = dt.Rows[0]["footdate"].ToString();
LblQueryDelDate.Text = dt.Rows[0]["parkdate"].ToString();
LblQueryOperNa.Text = dt.Rows[0]["operna"].ToString();
LblQueryMoney.Text = dt.Rows[0]["金额"].ToString();
GridMzPzQuery.DataSource = dt;
gridView8.Columns[0].Visible = false;
gridView8.Columns[1].Visible = false;
gridView8.Columns[2].Visible = false;
gridView8.Columns[3].Visible = false;
gridView8.Columns[4].Width = 90;
gridView8.Columns[5].Width = 90;
gridView8.Columns[6].Width = 90;
gridView8.Columns[7].Width = 90;
gridView8.Columns[8].Visible = false;
gridView8.Columns[9].Visible = false;
gridView8.Columns[10].Visible = false;
gridView8.Columns[11].Visible = false;
gridView8.Columns[12].Visible = false;
break;
default:
break;
}由于查询结果表的结构不同,在查询第一项后再查第二项就报索引超出的错误,
GridMzPzQuery.DataSource=ds.tables[1];
{
GridMzPzQuery.MainView.Dispose();
DevExpress .XtraGrid.Views .Grid.GridView g8 = new GridView(GridMzPzQuery);
g8.Appearance.GroupPanel.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
g8.Appearance.GroupPanel.Options.UseFont = true;
g8.Appearance.GroupPanel.Options.UseTextOptions = true;
g8.Appearance.GroupPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
g8.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
g8.GridControl = this.GridMzPzQuery;
g8.GroupPanelText = "票据收费明细表";
g8.Name = "g8";
g8.OptionsBehavior.CacheValuesOnRowUpdating = DevExpress.Data.CacheRowValesMode.Disabled;
g8.OptionsBehavior.Editable = false;
g8.OptionsCustomization.AllowColumnMoving = false;
g8.OptionsCustomization.AllowColumnResizing = false;
g8.OptionsCustomization.AllowFilter = false;
g8.OptionsCustomization.AllowGroup = false;
g8.OptionsCustomization.AllowSort = false;
g8.OptionsFilter.AllowFilterEditor = false;
g8.OptionsMenu.EnableColumnMenu = false;
g8.OptionsMenu.EnableFooterMenu = false;
g8.OptionsMenu.EnableGroupPanelMenu = false;
g8.OptionsSelection.EnableAppearanceFocusedCell = false;
g8.OptionsView.ColumnAutoWidth = false;
GridMzPzQuery.MainView = g8;
GridMzPzQuery.DataSource = dt;
GridMzPzQuery.ForceInitialize();
GridMzPzQuery.RefreshDataSource();
GridMzPzQuery.Refresh();
switch (lx)
{
case 1:
g8.Columns[0].Width = 130;
g8.Columns[1].Width = 250;
g8.Columns[2].Width = 90;
g8.Columns[3].Width = 90;
g8.Columns[4].Width = 90;
break;
case 2:
g8.ClearGrouping();
//GridMzPzQuery.MainView.RefreshData();
//GridMzPzQuery.ForceInitialize();
g8.Columns[0].Visible = false;
g8.Columns[1].Visible = false;
g8.Columns[2].Visible = false;
g8.Columns[3].Visible = false;
g8.Columns[4].Width = 90;
g8.Columns[5].Width = 90;
g8.Columns[6].Width = 90;
g8.Columns[7].Width = 90;
g8.Columns[8].Visible = false;
g8.Columns[9].Visible = false;
g8.Columns[10].Visible = false;
g8.Columns[11].Visible = false;
g8.Columns[12].Visible = false;
break;
default:
break;
}
}
结合各位的指点,终于解决了,这个控件如此简单的问题这么复杂,不知各位还有什么方法,明天结账,谢谢各位了!
gridView1.Columns.Clear();
gridControl1.DataSource = MsgContainer.Instance.GetDTULoadPara(this.paraDTUID.Text);
this.gridControl1.ForceInitialize();
this.gridControl1.RefreshDataSource();
this.gridControl1.Refresh();
this.gridView1.ClearColumnsFilter();
加上这个清除过滤条件就更好了。
myDs.Clear();
gridView1.Columns.Clear();
……