Member 13886057 Ответов: 1

Как устранить дубликаты данных для первых четырех столбцов в представлении сетки ?


У меня есть около 10 столбцов в виде сетки. Я хочу исключить дубликаты данных из первых четырех столбцов. Данные могут быть одинаковыми во всех этих четырех столбцах. Но данные должны быть устранены по столбцам. Первый столбец не следует сравнивать с другими.
Например: у меня есть такие данные, как

PNAME	DNAME	SNUMBER	VALUE	field_name	operation	old_value new_value
906	906	906	CH1	AdjPeriod	Delete	6/13/2018 5:39:26 PM	1
906	906	906	CH1	CollectPayment	Delete	False	1
906	906	906	CH1	Current_Liability_Bal	Delete		
906	906	906	CH1	Current_ROU_Bal	Delete		1
906	906	906	CH1	FASB_Adj_Balance	Delete		
90906	89906	789906	CH1	FASB_Amount	Delete	76.92	
90906	89906	789906	CH1	FASB_Classification	Delete	5	
90906	89906	789906	CH1	FASB_End_Date	Delete	12/31/2010 12:00:00 AM	1
90906	89906	1906	CH1	FASB_Balance	Delete		
90906	89906	1906	CH1	FASB_Periods	Delete	13	
90906	89906	1906	CH1	FASBR_ID	Delete	16033	1
90906	89906	1906	CH1	Fixed_Monthly_Index_Rent	Delete
и ожидаемый результат таков:

PNAME	DNAME	SNUMBER	VALUE	field_name	operation	old_value new_value
906	906	906	CH1	AdjPeriod	Delete	6/13/2018 5:39:26 PM	1
				CollectPayment	Delete	False	1
				Current_Liability_Bal	Delete		
				Current_ROU_Bal	Delete		1
				FASB_Adj_Balance	Delete		
90906	89906	789906	CH1	FASB_Amount	Delete	76.92	
				FASB_Classification	Delete	5	
				FASB_End_Date	Delete	12/31/2010 12:00:00 AM	1
		1906	CH1	FASB_Balance	Delete		
				FASB_Periods	Delete	13	
				FASBR_ID	Delete	16033	1
				Fixed_Monthly_Index_Rent	Delete


Что я уже пробовал:

Я попробовал это ниже кода, но это работает нормально только для первого столбца.

string initialnamevalue = "";
        if (gv.Rows.Count > 0)
        {
            initialnamevalue = gv.Rows[0].Cells[0].Text;
        }

        //Step 2:

        for (int i = 1; i < gv.Rows.Count; i++)
        {
            if (gv.Rows[i].Cells[0].Text == initialnamevalue)
            gv.Rows[i].Cells[0].Text = string.Empty;
            else
                initialnamevalue = gv.Rows[i].Cells[0].Text;
        }

1 Ответов

Рейтинг:
0

Maciej Los

Цитата:

Я попробовал это ниже кода, но это работает нормально только для первого столбца.


Итак, используйте ту же логику для второго, третьего и четвертого столбцов. Например (версия с двумя столбцами):
string sCol1Value = string.Empty;
string sCol2Value = string.Empty;
sCol1Value = gv.Rows[0].Cells[0].Text;
sCol2Value = gv.Rows[0].Cells[1].Text;
//Step 2:
for (int i = 1; i < gv.Rows.Count; i++)
{
    if (gv.Rows[i].Cells[0].Text == sCol1Value)
        gv.Rows[i].Cells[0].Text = string.Empty;
    else
        sCol1Value = gv.Rows[i].Cells[0].Text;
            
    if (gv.Rows[i].Cells[1].Text == sCol2Value)
        gv.Rows[i].Cells[1].Text = string.Empty;
   else
        sCol2Value = gv.Rows[i].Cells[1].Text;
}


Понял?