Могу ли я перебрать 2 вида сетки данных в событии с одним нажатием кнопки и выполнить обновление? - PullRequest
1 голос
/ 29 февраля 2012

У меня есть личный стол, в котором есть клиенты и продавец. Каждый клиент назначается продавцу по ParentID. Т.е. идентификатор родителя клиента - это индивидуальный идентификатор продавца. IndividualID - это первичный ключ. Я написал сохраненный Proc, который принимает IndividualID и ParentID. Мне нужно перебрать 2 блока данных, оба из которых имеют флажки, а затем назначить выбранного клиента выбранному продавцу. (По сути, выбранным клиентам новый ParentID выбран индивидуальный идентификатор продавца) Во всяком случае, я пытаюсь просто пройти через 2 сетки данных в одно нажатие кнопки и получить ParentID и IndividualID. Но я получаю волнистые линии под моими переменными во втором цикле foreach. Вот мой код:

protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
    //loop 1st gv

    foreach (GridViewRow row in gvCustomer.Rows)
    {
        CheckBox cb = (CheckBox)row.FindControl("chkitemSelectorCustomers");
        if (cb != null && cb.Checked)
        {
            GridViewRow r = gvCustomer.SelectedRow;
            int oldParentID = Convert.ToInt32(r.Cells[2]);
            int oIndividualID = Convert.ToInt32(r.Cells[0]);
        }
    }     // loop 2nd gv
    foreach (GridViewRow row in gvSalesman.Rows )
    {
        CheckBox chkBox =        (CheckBox)row.FindControl("chkitemSelectorAllManagersandSalesman");
        if (chkBox != null && chkBox.Checked)
        {
            GridViewRow ro = gvReassignCustomers.SelectedRow;
            int oNewParentID = Convert.ToInt32(ro.Cells[1]);

            // Assign old ParentID to Salesmans ID//
            oNewParentID = oldParentID;

            // Call stored proc Update Customer with New ParentID//

            Individual ind = new Individual();
            ind.ReassignIndividual(oIndividualID, oNewParentID);
        }
    }
}

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Вы используете то же имя переменной во втором вложенном цикле GridViewRow row, если у вас есть вложенные циклы, они не могут иметь одинаковое имя переменной.

1 голос
/ 29 февраля 2012

Переменные oldParentID и oIndividualID объявляются внутри первого foreach и доступны во втором, что недопустимо, поскольку их область видимости находится внутри первого foreach.

Попробуйте объявить их внепетли foreach.Код скомпилируется, но я не уверен, что он решит ваши обновления.

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