4

在此处输入图像描述

我需要检查一个单元格是否为空并存储一条消息,然后在包含所有消息的每一行中创建一个新单元格

但我不知道如何使用 DevExpress 有人可以帮助我的代码

    string Name = "First Name";
    string FName = "Father Name";
    string LName = "Last Name";
    string EmpCode = "Employee Code";
    string Tax = "Tax#";
    string SocSec = "Soc.Sec#";
    string EmpType = "Employment Type";
    string DepCode = "Department Code";
    string DepDesc = "Department Description";
    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);
        }

这个循环没有给我关于空单元格的正确信息我认为我写的内容不正确也许还有另一种更好的方法......

        for (int rows = 0 ; rows < gridView3.RowCount ; rows ++)
        {
            string[] msg = new string[50];

            if ((gridView3.GetRowCellValue(rows, gridView3.Columns["LName"])) == null)
            {
                msg[rows] = "name missing";
            }
        }
4

4 回答 4

1

据我所知,单元格的值不会为空。然而,底层数据源将具有空值。

要检查单元格的数据是否为空或从空值求和:

private bool IsNullValue(PivotDrillDownDataSource ds, PivotGridField field)
{
    if (ds.RowCount == 0 || field == null) return false;
    for (int i = 0; i < ds.RowCount; i++)
    {
        if (Equals(ds[i][field], null))
        return true;
    }
    return false;
 } 

要更改空单元格中的文本:

if (IsNullValue(e.CreateDrillDownDataSource(), e.DataField))
     e.DisplayText = "NULL OR SUM WITH NULL";
于 2013-01-29T08:50:01.263 回答
1

我遇到了同样的问题,下面的代码对我来说很好,只是与 OP 尝试的略有不同。我希望它会帮助某人。

for (int rows = 0 ; rows < gridView3.RowCount ; rows ++)
    {
        string[] msg = new string[50];

        if ((gridView3.GetRowCellValue(rows, "LName")) == null)
        {
            msg[rows] = "name missing";
        }
    }

LName 需要替换为字符串 fieldName。

于 2017-01-31T12:40:04.867 回答
0
private void gridViewPro_RowStyle(object sender, 
    DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
    GridView View = sender as GridView;
    if (e.RowHandle >= 0)
    {
        double Sale = Convert.ToDouble(
            View.GetRowCellDisplayText(e.RowHandle, View.Columns["PRO_S3M"]));
        double Qua = Convert.ToDouble(
            View.GetRowCellDisplayText(e.RowHandle, View.Columns["PRO_QTY"]));
        if (Sale > 0 && Qua > 0)
        {
            if (Sale >= Qua)
            {
                e.Appearance.BackColor = Color.OrangeRed;
            }
        }
    }
}
于 2014-02-18T09:49:03.663 回答
-1

使用 AspxGridView 这个事件

 protected void grid_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
{        // Get Cell Values here and compare as per your conditions
    string text = e.CellValue.ToString();                   
 }
于 2013-01-28T10:17:31.793 回答