将 GridView 与AutoGenerateColumns="true"
.
在我的场景中,我尝试使用它,因为我的 GridView 正在从存储过程中动态提取数值。如您所见,可能有 x 层。
查看数据时,我的一切看起来都很棒:
仅查看:
但是,一旦我将该行置于编辑模式,事情就会变成这样:
编辑模式:
我需要在这里做两件事:
- 使文本框更小宽度
- 格式化数字以删除小数
我研究了循环遍历 GridView 行、内部DataControlField
、内部的所有控件,DataControlFieldCell
但我已经很困惑,需要大家帮忙。
我的代码在 C# 中。
编辑:
好的,为了更清楚,我正在尝试单击编辑(M 按钮)以将该行置于编辑模式。从这里开始,我想遍历行中的所有控件,然后设置 TextBox 宽度。这些方面的东西(这不是工作代码,而只是我在乱搞):
protected void gvFeeTable_RowEditing(object sender, GridViewEditEventArgs e)
{
gvFeeTable.EditIndex = e.NewEditIndex;
BindFeeTableGrid(9);
//foreach (DataControlField field in gvFeeTable.Columns)
//{
// field.ControlStyle.Width = 25;
//}
foreach (Control c in gvFeeTable.Rows[gvFeeTable.EditIndex].Controls)
{
//if (c is TextBox)
//{
// TextBox tb = c as TextBox;
// tb.Width = 25;
//}
string test = c.GetType().ToString();
if (c.GetType() == typeof(DataControlFieldCell))
{
foreach (TextBox tb in c.Controls)
{
tb.Width = 50;
}
}
}
}