日期:2014-05-18  浏览次数:20521 次

gridview模板中文本框去除空格
模板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("&nbsp;", "");

------解决方案--------------------
这个应该是你数据库的问题吧,你应该把字段设为varchar可变长型,而不是char定长型