1

我正在使用 DevExpress DataGrid 我正在从 excel 中填充它。如果用户将字段名称保持为空,我需要给他一条错误消息。这是我的代码:

using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Grid;

string FirstName = "First Name";
string FatherName = "Father Name";
string LastName = "Last Name";
private void simpleButton1_Click(object sender, System.EventArgs e)
    {
        try
        {
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=C:\\Users\\pc\\Documents\\Emp.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes\"";

            con.Open();
            DataTable dtSchema;
            dtSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            OleDbCommand Command = new OleDbCommand ("select * FROM [" + dtSchema.Rows[0]["TABLE_NAME"].ToString() + "]", con);
            OleDbDataAdapter da = new OleDbDataAdapter(Command);
            DataSet ds = new DataSet ();
            da.Fill(ds);
            dataGrid1.DataSource = ds.Tables[0];
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }   

private void gridView3_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
    {
        GridView view = sender as GridView;
        if(view.FocusedColumn.FieldName == "FirstName") 
        {
            string FirName = (e.Value.ToString());
            if(FirName == null) 
            {
                e.Valid = false;
                e.ErrorText = "Enter a First Name";
            }
        }
    }



private void gridView3_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
    {
        //Do not perform any default action 
        e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.NoAction;
        //Show the message with the error text specified 
        MessageBox.Show(e.ErrorText);
    }

问题是当我运行程序时..代码无法访问此代码并且没有显示错误..有人能注意到我的错在哪里吗?太感谢了

4

1 回答 1

1

很遗憾,鉴于您提供的信息,我无法回答您的问题。但是,您应该调查许多事情以找出问题所在。

编辑:添加第 3 点。

  1. 检查您是否已将处理程序分配给InvalidValueExceptionValidatingEditor上的事件gridView3。您已表明您已通过设计器完成此操作,因此您应该能够搜索您的代码库并验证您是否可以找到以下行:

    gridView3.InvalidValueException += gridView3_InvalidValueException gridView3.ValidatingEditor += gridView3_ValidatingEditor

  2. 在这两种方法的顶部放置一个断点并验证是否正在调用处理程序 - 即,您不仅仅依赖于验证工作,而不是验证正在调用您的处理程序。

  3. 阅读有关ValidatingEditorInvalidValueException事件的 DevExpress 文档,以确保您正确理解它们是如何触发的。

于 2013-01-29T09:32:44.423 回答