我已经填充了一个带有两个级别的XtraGrid视图。我可以使用主级别,但是当我想通过代码找到二级或者甚至我添加像OnRowClick这样的事件或类似于子级别的事件它不起作用。有没有人有我的问题? 例如,subblevel中gridview的名称是GridProperty ..这段代码不起作用
[C#]
GridProperty.ApplyFindFilter(bar_edit_search.EditValue.ToString());
甚至事件都不会触发
[C#]
private void GridProperty_RowClick(object sender, RowClickEventArgs e){}
以下是我填充gridview的方法
string owner = "SELECT [OBJECTID],[Name] ,[Family] ,[Father] ,[shenasname],[Dftarche] ,[Birthday] ,[education] ,[home_address] ,[farm_address] ,[ensurance] ,[phone] ,[home_number] ,[owner_id],[sodor] ,[shahr],[bakhsh] ,[dehestan] ,[rosta] ,[kodPosti] FROM [dbo].[OWNER]";
string strConnString = Properties.Settings.Default.land_gisConnectionString;
SqlConnection con = new SqlConnection(strConnString);
con.Open();
SqlCommand command = new SqlCommand(owner, con);
SqlDataAdapter adapter = new SqlDataAdapter();
dsMain = new System.Data.DataSet();
adapter.SelectCommand = command;
adapter.Fill(dsMain, "First Table");
dsMain.Tables.Add(iFeatureSet.DataTable.Copy());
adapter.Dispose();
command.Dispose();
DataRelation newRelation = new DataRelation("املاک شخصی", dsMain.Tables["First Table"].Columns["owner_id"], dsMain.Tables["Table1"].Columns["owner_ID"]);
dsMain.Relations.Add(newRelation);
}
GridAttrebuteTable.DataSource = dsMain.Tables[0];
GridAttrebuteTable.ForceInitialize();
GridOwners.Columns["shahr"].Visible = false;
GridOwners.Columns["bakhsh"].Visible = false;
GridOwners.Columns["dehestan"].Visible = false;
GridOwners.Columns["rosta"].Visible = false;
GridOwners.Columns["kodPosti"].Visible = false;
GridOwners.Columns["sodor"].Visible = false;
GridOwners.Columns["sodor"].OptionsColumn.AllowShowHide = false;
GridOwners.Columns["shahr"].OptionsColumn.AllowShowHide = false;
GridOwners.Columns["bakhsh"].OptionsColumn.AllowShowHide = false;
GridOwners.Columns["dehestan"].OptionsColumn.AllowShowHide = false;
GridOwners.Columns["rosta"].OptionsColumn.AllowShowHide = false;
GridOwners.Columns["kodPosti"].OptionsColumn.AllowShowHide = false;
SplashScreenManager.CloseForm();
答案 0 :(得分:0)
子级别没有问题。您必须检查以下内容:
0.对于ColumnView.ApplyFindFilter
方法,请检查ColumnView.OptionsFind.FindFilterColumns
属性。根据文件:
如果FindFilterColumns属性设置为“*”,则查找面板 对所有可见列执行搜索。
要显式指定搜索列,请设置FindFilterColumns 属性到由相应字段名称组成的字符串 用分号分隔(没有空格字符): “名称;值;描述”。
因此,如果您的FindFilterColumn
属性设置为错误的值,那么ApplyFindFilter
方法将无效。
1.对于GridView.RowClick
事件,根据文档:
单击行单元格(如果是数据)时,不会触发RowClick事件 编辑已启用,并且ColumnViewOptionsBehavior.EditorShowMode已启用 property设置为MouseDown(如果选择多行,则设置为Default 被禁用了。)
因此,请检查您的ColumnView.OptionsBehavior.EditorShowMode
媒体资源并将其设为EditorShowMode.Click
2.检查GridLevelNode.RelationName
。它必须等于基础RelationName
中的DataSource
:
DataRelation newRelation = new DataRelation("املاک شخصی", dsMain.Tables["First Table"].Columns["owner_id"], dsMain.Tables["Table1"].Columns["owner_ID"]);
//...
gridControl.LevelTree.Nodes[0].RelationName = "املاک شخصی";