Флажок, чтобы изменить Gridview на основе определенного значения строки? - PullRequest
0 голосов
/ 21 мая 2018

Пожалуйста, прости меня, если я не сформулирую это самым всеобъемлющим образом, я новичок в .net.

Я пытаюсь сделать следующее: установить флажок, внешний по отношению к представлению таблицы, который когда-товыбранный, обновляет вид сетки, чтобы отображать ТОЛЬКО строки с определенным значением.В этом случае либо «ДА», либо «НЕТ».После того, как пользователь установит флажок, он будет отображать только те строки, у которых значение столбца равно «YES».

Я бы предпочел сделать это способом, который не требует воссоздания всего вида сетки, а скорее толькоотображение строк, в которых есть значение «YES».Это все, что я получил до сих пор, и я не знаю, нахожусь ли я на правильном пути:

protected void chkbox_Click(object sender, EventArgs e)
{
    AppError curError = null;
    User curUser = null;

    if (chkboxlbl.Checked == true) //if checked then jump into next step
    {
        foreach (GridViewRow row in GridViewAppts.Rows)
        {
          // not sure what to put here yet. 
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Установите для свойства Visible строки значение False.

if(GridViewRow.Column = "NO")
    GridViewRow.Visible = False;
0 голосов
/ 22 мая 2018

Итерируя каждую строку, вам просто нужно сделать еще один шаг для достижения цели, установив видимость строки на false: выяснить, в каком индексе столбца / ячейки установлены значения "NO".

Выможно использовать одно из двух возможных решений ниже, чтобы скрыть все строки, содержащие значение «NO» в определенном индексе столбца / ячейки:

1) Использование foreach loop

foreach (GridViewRow row in GridViewAppts.Rows)
{
    if (row.RowType == DataControlRowType.DataRow)
    {
        // 'n' belongs to column index, starting from leftmost column = 0
        if (row.Cells[n].Text == "NO")
        {
            row.Visible = false;
        }
    }
}

2) Использование for loop

for (int i = 0; i < GridViewAppts.Rows.Count; i++)
{
    // 'n' belongs to column index, starting from leftmost column = 0
    if (GridViewAppts.Rows[i].Cells[n].Text == "NO")
    {
        GridViewAppts.Rows[i].Visible = false;
    }
}
0 голосов
/ 21 мая 2018

Вы можете попробовать:

row.Attributes["style"] = "display:none";

Если это не сработает, тогда я буду перепривязывать.Вы также можете сделать это на стороне клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...