DataGrid 通过内部控件获取所在控件的列索引
2008-04-10 12:41
281 查看
DataGrid 通过内部控件获取所在控件的列索引, 原来以为列所引很容易通过属性得到,没想到费了一番周转,花了不少时间,太过费劲了,不知有更简单的方法没?
foreach (DataGridItem i in this.DtGrid.Controls[0].Controls)
{
if (i.ItemType == ListItemType.Header)
{
for (int month_i = 1; month_i <= 12; month_i++)
{
Label myLabel = (Label)i.FindControl("lblMonth" + month_i.ToString());
myLabel.Text = myYear.ToString() + "." + myMonth.ToString();
myMonth++;
if (myMonth > 12)
{
myMonth = myMonth - 12;
myYear += 1;
}
//判断改列是否要隐藏,是则隐藏
for(int m =0; m < i.Cells.Count; m++)
{
if(i.Cells[m].Controls.Contains(myLabel))
{
bool isHas = false;
for (int n = 0; n < yearMonth.Length; n++)
{
if(myLabel.Text == yearMonth
.Replace('-','.'))
{
isHas= true;
break;
}
}
if(!isHas)
{
DtGrid.Columns[m].Visible = false;
}
break;
}
}
}
break;
}
}
}
关键是通过 i.Cells[m].Controls.Contains(控件)判断是否在cells[m]存在要找的控件
用cells[].findControls()是找不到对应列的控件,居然会把整个cells[]所在行的控件都找出来
如cells[0]。findControls()可以找到cells[1]中的控件 不解
foreach (DataGridItem i in this.DtGrid.Controls[0].Controls)
{
if (i.ItemType == ListItemType.Header)
{
for (int month_i = 1; month_i <= 12; month_i++)
{
Label myLabel = (Label)i.FindControl("lblMonth" + month_i.ToString());
myLabel.Text = myYear.ToString() + "." + myMonth.ToString();
myMonth++;
if (myMonth > 12)
{
myMonth = myMonth - 12;
myYear += 1;
}
//判断改列是否要隐藏,是则隐藏
for(int m =0; m < i.Cells.Count; m++)
{
if(i.Cells[m].Controls.Contains(myLabel))
{
bool isHas = false;
for (int n = 0; n < yearMonth.Length; n++)
{
if(myLabel.Text == yearMonth
.Replace('-','.'))
{
isHas= true;
break;
}
}
if(!isHas)
{
DtGrid.Columns[m].Visible = false;
}
break;
}
}
}
break;
}
}
}
关键是通过 i.Cells[m].Controls.Contains(控件)判断是否在cells[m]存在要找的控件
用cells[].findControls()是找不到对应列的控件,居然会把整个cells[]所在行的控件都找出来
如cells[0]。findControls()可以找到cells[1]中的控件 不解
相关文章推荐
- WPF DataGridTemplateColumn 获取内部控件
- gridview通过字段列名获取字段所在列索引
- DataGridView通过鼠标坐标,获取所在行索引
- 怎样通过gridview中的控件获取该控件所在列 哇塞,真是太牛了 噢耶
- 如何在Flex3中获取鼠标经过DataGrid时所在的行列索引
- DataGridTemplateColumn 如何获取内部控件
- 【C#】通过webbrowser控件获取验证码
- 通过JavaScript获取Repeater控件中的子控件
- GridView控件 单击TemplateField中的Button控件时,获取该行的行号(行索引)
- easyui-datagrid通过action从数据库获取数据的关键代码
- Spring内部bean无法通过id获取
- 将DataGrid 中的指定值所在的单元格更改为一个控件
- ASP.NET中通过WebService获取数据来使用Highcharts图表控件
- UltraWebGrid如何获取点击模板列中控件所在的行号
- php 获取准确的ip,并通过ip准确获取所在区域 的方法
- 获取DataGrid中当前光标所在的行和列
- VB.NET 通过窗口句柄,获取webbrowser控件HTML内容
- delphi 通过点击获取控件名称
- 通过文件名来获取R文件里面的对象(在EditText控件中输入文字和图像)