【发布时间】:2017-07-24 15:52:49
【问题描述】:
使用带有AutoGenerateColumns="true" 的GridView 时,似乎没有很多信息。
在我的场景中,我尝试使用它,因为我的 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;
}
}
}
}
【问题讨论】:
-
显示你的 c# 代码
-
我没有任何代码 - 我被困在如何实现我想要完成的目标上:1. 使文本框更小宽度 2. 格式化数字以删除小数
-
至少需要看到呈现的 html。如果您无法更改代码,CSS 是唯一的选择。如果您只有屏幕截图,则无法提供太多帮助
-
关于小数,您希望输入四舍五入还是截断。还是希望用户只输入整数值?
-
对于小数,我想镜像我在 RowDataBound 部分中的代码:“e.Row.Cells[i].Text = Convert.ToDecimal(val).ToString("0. ##");"
标签: c# gridview autogeneratecolumn