Получить столбец Index Of gridview после Databind - PullRequest
1 голос
/ 06 марта 2012

то, что я сделал с представлением сетки: в соответствии с базой данных, я добавил столбцы в таблицу данных, и после этого я связал ее с представлением сетки.

вот код,

/// Получить действия здесь для привязки к GridView Чтобы получить действия в первом столбце.

    Dt = BlObj.BlDynamic_Table("[USP_DynamicGridView]", 2);
    DtOperation = BlObj.BlDynamic_Table("[USP_DynamicGridView]", 1);
    for (int i = 0; i < DtOperation.Rows.Count; i++)
    {
        Dt.Columns.Add(DtOperation.Rows[i][0].ToString());
    }
    dgrDynamic.DataSource = Dt;
    dgrDynamic.DataBind();

но для меня необходимо получить индекс столбца .. вот код

private int GetColumnIndexByName(int p)

{
    return ((int)GetColumnName(BlObj.BlDynamic_Table("[USP_DynamicGridView]", 
    4, p).ToString()));
}

private int GetColumnName(string name)
{
    foreach (DataColumn col in dgrDynamic.Columns)
    {
        int Index = 0;
        if(col.Equals(name.ToLower().Trim()))
       // if (col.Name.ToLower().Trim() == name.ToLower().Trim())
        {
            return Index;
        }
        Index += 1;
    }

    return -1;
}

В чем проблема в том, что цикл foreach не работает ..

Я более свежий в .NET, и я также не знаю, правильно ли я поступил ... Может кто-нибудь, пожалуйстапомогите мне?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Используйте следующую функцию, чтобы получить индекс столбца:

private int GetColumnIndexByName(GridView grid, string name) 
    { 
        foreach (DataControlField col in grid.Columns) 
        { 
            if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim()) 
            { 
                return grid.Columns.IndexOf(col); 
            } 
        } 

        return -1; 
    } 
0 голосов
/ 06 марта 2012

Вот как я это сделал:

private int GetColumnIndex(GridView gv, string columnName, int columnCount)
{
    for (int i = 0; i < gv.Columns.Count; i++)
        if (gv.Columns[i].HeaderText == columnName)
            return i - columnCount + 1;
    throw new Exception("no such column '" + columnName + "'");
}

Это работает в моей кодовой базе.

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