Как перебрать два GridViews, чтобы найти одни и те же значения? C #

У меня есть два GridViews на моей странице - grvBookCategoriesпоказывает категории одной конкретной книги и grvCategoriesсодержит все возможные категории для библиотеки. grvBookCategoriesотображается, когда страница загружается и grvCategoriesзапускается при нажатии кнопки. В cbxGrvCategoriesItemTemplate есть флажок grvCategories.

Вопрос в том, как пропустить эти два GridViews, чтобы найти одинаковые значения в обоих из них (оба содержат столбец с именем категории)? Если есть соответствие - соответствующий флажок должен быть проверен. Например, если есть 3 строки, grvBookCategoriesтогда необходимо также установить 3 флажка grvCategories.

Я пытался это сделать, используя grvCategories_RowDataBound событие и петли foreach, но результаты не совсем правильные. Проблема в том, что в последней grvCategoriesстроке есть совпадение . В этом случае флажок в этой строке никогда не проверяется, для всех остальных строк результаты являются точными.

protected void grvCategories_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
    string rowcValue = "";
    string rowbcValue = "";
    CheckBox cbx = new CheckBox();
    foreach (GridViewRow rowc in grvCategories.Rows)
    {
      if (rowc.RowType == DataControlRowType.DataRow)
      {
        rowcValue = rowc.Cells[2].Text;
        cbx = (CheckBox)rowc.Cells[3].FindControl("cbxGrvCategories");
        foreach (GridViewRow rowbc in grvBookCategories.Rows)
        {
          if (rowbc.RowType == DataControlRowType.DataRow)
          {
            rowbcValue = rowbc.Cells[1].Text;
            if (rowcValue.Equals(rowbcValue))
            {
              cbx.Checked = true;
              break;
            }
            else
            {
              cbx.Checked = false;
            }
          }
        }
      }
    }
  }
}

Спасибо за любую помощь заранее!

c#,asp.net,gridview,visual-studio-2015,

0

Ответов: 0

Как перебрать два GridViews, чтобы найти одни и те же значения? C #

У меня есть два GridViews на моей странице - grvBookCategoriesпоказывает категории одной конкретной книги и grvCategoriesсодержит все возможные категории для библиотеки. grvBookCategoriesотображается, когда страница загружается и grvCategoriesзапускается при нажатии кнопки. В cbxGrvCategoriesItemTemplate есть флажок grvCategories.

Вопрос в том, как пропустить эти два GridViews, чтобы найти одинаковые значения в обоих из них (оба содержат столбец с именем категории)? Если есть соответствие - соответствующий флажок должен быть проверен. Например, если есть 3 строки, grvBookCategoriesтогда необходимо также установить 3 флажка grvCategories.

Я пытался это сделать, используя grvCategories_RowDataBound событие и петли foreach, но результаты не совсем правильные. Проблема в том, что в последней grvCategoriesстроке есть совпадение . В этом случае флажок в этой строке никогда не проверяется, для всех остальных строк результаты являются точными.

protected void grvCategories_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
    string rowcValue = "";
    string rowbcValue = "";
    CheckBox cbx = new CheckBox();
    foreach (GridViewRow rowc in grvCategories.Rows)
    {
      if (rowc.RowType == DataControlRowType.DataRow)
      {
        rowcValue = rowc.Cells[2].Text;
        cbx = (CheckBox)rowc.Cells[3].FindControl("cbxGrvCategories");
        foreach (GridViewRow rowbc in grvBookCategories.Rows)
        {
          if (rowbc.RowType == DataControlRowType.DataRow)
          {
            rowbcValue = rowbc.Cells[1].Text;
            if (rowcValue.Equals(rowbcValue))
            {
              cbx.Checked = true;
              break;
            }
            else
            {
              cbx.Checked = false;
            }
          }
        }
      }
    }
  }
}

Спасибо за любую помощь заранее!

00C #, asp.net, GridView, зрительно-студия-2015,
Похожие вопросы