0

現在、興味深いロジックを持つグリッドに取り組んでいます。その中のロジックは現在、重複データを連続して表示しないように配置されています。

つまり、これを意味します。複数の列 (10) を持つグリッドがあります。現在、HtmlDataCellPrepared メソッドで、セルの値がセッション変数と等しいかどうかを確認するプロセスが設定されています。ある場合は、空白のままにします。以下は、何が起こるかを示すコードです。

settings.HtmlDataCellPrepared = (sender, e) =>
        {
            if (e.DataColumn.FieldName == "ProgramArea")
            {
                if (HttpContext.Current.Session["QR_ProgramArea"] != null &&
                    HttpContext.Current.Session["QR_ProgramArea"].ToString() == e.CellValue.ToString())
                    e.Cell.Text = " ";
                HttpContext.Current.Session["QR_ProgramArea"] = e.CellValue.ToString();
            }

私の目標は、列内に何も入力されていない場合があるため、このセッション変数を置き換えることです。現在の値と前の行を比較する必要があります。どんな助けでも大歓迎です。

4

1 に答える 1

0

そこで、もう少し調べた結果、解決策を見つけました。セッション変数を削除する最も簡単な方法は、前の行のデータを調べて、同じ値が存在するかどうかを確認することです。

settings.HtmlDataCellPrepared = (sender, e) =>
{
    var grid = sender as MVCxGridView;
    if (e.DataColumn.FieldName == "ProgramArea")
    {
        if (e.VisibleIndex - 1 >= 0)
        {
            var previousRow = grid.GetDataRow(e.VisibleIndex - 1);
            if (e.CellValue.ToString() == previousRow["ProgramArea"].ToString())
                e.Cell.Text = " ";
        }
    }

当然、最初の行はスキップしますが、その後、各行を見て、前の行に同じデータがあるかどうかを確認します。

于 2014-11-21T15:57:28.877 に答える