日期:2012-06-04  浏览次数:20384 次

今天写的一段控制DataGrid中TextBox宽度(其他属性也行)的代码。
C#的,多加一些判断,也可以控制其他控件的属性,比如ListBox :D
private void dgImage_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
    System.Web.UI.WebControls.TextBox tb;
    int intLength;
    if(e.Item.ItemType==ListItemType.EditItem)
    {
        //循环所有单元
        for(int i=0; i<e.Item.Cells.Count-1;i++)
        {
            //单元内是否有控件
            if(e.Item.Cells[i].Controls.Count>0)
            {
                //如果是TextBox控件
                if(e.Item.Cells[i].Controls[0].GetType().ToString()=="System.Web.UI.WebControls.TextBox")
                {
                    tb = (TextBox)e.Item.Cells[i].Controls[0];
                    intLength = 0;
                    intLength = tb.Text.Length;
                    intLength = intLength * 7;
                    if(intLength==0) intLength=20;
                    tb.Width = intLength;
                    tb.CssClass="DataGridTextBox"; //你的CSS样式表名称
                    //下面可以设置TextBox其他属性
                }
            }
        }
    }
}