模板EditItemTemplate的文本框可以在编辑行是显示文本框,但是运行时发现只要是文本格式的单元格,文本框显示都会显示很多空格,无论是否有数据。
这个就很麻烦,每次修改时都必须先将空格删除,否则录入就有可能错误。我想使用trim()方法,将这些空格清除。但是却不知道怎么将这些模板列的文本框取出来。
我使用过一下方法
- C# code
foreach (GridViewRow grow in GridView1.Rows) { TextBox textbox = (TextBox)grow.Cells[4].FindControl("TextBox2"); textbox.Text = textbox.Text.Trim(); }
- C# code
foreach (Control control in GridView1.TemplateControl.Controls) { if (control is TextBox) { TextBox textBox =(TextBox)control; textBox.Text = textBox.Text.Trim(); } }
结果都不行,实在是想不出其他的办法啦。
另外,原来我写过一个遍历页面控件,将文本框空格清除的方法
- C# code
foreach (Control control in Controls) { foreach (Control c in pControls) { foreach (Control childc in c.Controls) { if (childc is TextBox) { TextBox textBox = (TextBox)childc; textBox.Text = textBox.Text.Trim(); } } } }
但为什么,照理说gridview.controls集合应该也可以遍历取出文本框控件,但为什么不行呢?
------解决方案--------------------------------------------------------
楼主真强悍.想到了那么多...
------解决方案--------------------------------------------------------
<%# bakstr(Eval("year")) %>'提示错误因为Eval("year")是Object类型,需要ToString();
或者你的方法那里改一下,改成
public string bakstr(object obj)
{
}
------解决方案--------------------------------------------------------
- C# code
TextBox6.Text = e.Item.Cells[7].Text.Trim().Replace(" ", "");
------解决方案--------------------------------------------------------
这个应该是你数据库的问题吧,你应该把字段设为varchar可变长型,而不是char定长型