Не удается найти индекс строки в Datagridview в ASP.NET? - PullRequest
1 голос
/ 12 февраля 2010

Я не могу найти индекс строки в Datagridview при вызове события в DropDownList.

Код:

protected void DescriptionOfProduct_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList _DescriptionOfProduct = (DropDownList)gvSales.FindControl("DescriptionOfProduct");

    Label _Unit = (Label)gvSales.FindControl("Unit");
    Label _PriceType = (Label)gvSales.FindControl("PriceType");
    //...
}

Пожалуйста, дайте мне решение.

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

Если выпадающий список находится внутри вида сетки, вы можете найти строку, поняв, что она находится в ячейке внутри строки. Таким образом, родителем его родителя является строка.

GridViewRow currentRow = (GridViewRow)_DescriptionOfProduct.Parent.Parent;
int index = currentRow.RowIndex;

EDIT

Если у вас все еще есть проблема с этим, я бы предложил то, что Митчел Селлерс сказал в своем ответе. Найдите свой выпадающий список, приведя отправителя в качестве выпадающего списка. Тогда вы можете найти свой ряд. Оттуда вы можете найти каждый элемент управления, используя ячейки строки, чтобы получить элементы управления.

Вот пример того, как я делал это раньше ...

protected void actionList_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList list = (DropDownList)sender;
        GridViewRow row = (GridViewRow)list.Parent.Parent;
        Label id = (Label)row.Cells[0].Controls[1];        

        // etc......
    }
1 голос
/ 12 февраля 2010

Отправителем события должен быть ваш выпадающий список.

DropDownList myList = sender as DropDownList;
if(myList != null)
{
    //Now you have your selected index myList.SelectedIndex
}

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

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