【问题标题】:To get the column Index Of gridview after Databind在Databind之后获取gridview的列索引
【发布时间】:2012-03-23 13:46:07
【问题描述】:

我对网格视图所做的是.. 根据 ma 数据库,我已将列添加到数据表中,然后将其绑定到网格视图。,

这里是代码,

/// 在此处获取活动以绑定到 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 的新手,我也不知道我是否遵循了正确的方法。谁能帮助我?

提前致谢。

【问题讨论】:

    标签: asp.net sql-server-2005 c#-4.0


    【解决方案1】:

    我是这样做的:

    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 + "'");
    }
    

    它适用于我的代码库。

    【讨论】:

    • 高级问题是没有将 dgrDynamic.Columns.Count 设为 0.. 为什么会这样.. 我认为这就是为什么 foreach 循环无法正常工作
    【解决方案2】:

    使用以下函数获取列索引:

    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; 
        } 
    

    【讨论】:

    • 谢谢前辈.. 但我没有得到 Gridview.columns.count.. 它总是 0。bt 有 DataTable 不是空的..
    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2018-10-28
    • 2015-09-16
    • 2022-06-23
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    相关资源
    最近更新 更多