RowClick和find在Devexpress XtraGrid子级别中不起作用

时间:2014-09-09 06:30:06

标签: devexpress xtragrid

我已经填充了一个带有两个级别的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();

1 个答案:

答案 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 = "املاک شخصی";