没有分了,请问dataGrid 中的一列的数据长度超过了,我想让它自动换行显示完整,而不是加大列宽,有办法吗?

解决方案 »

  1.   

    谢谢上面二位.可我是在winform下,设定列宽不行呀
      

  2.   

    1、设置列宽
    2、设置为自动换行
    3、设置DataGrid自身的宽度
    4、所有列宽加起来要等于DataGrid的宽度四个条件都满足后,可以实现楼主的要求
      

  3.   

    如果是用datagrid显示数据 
    在他的属性里面有一个TableStyles
    添加一个,然后在这个TableStyle里
    有一个GridColumnStyels,添加每一列,设置好
    每一列和数据库表格的对应关系,同时设置每一个
    表格表格的属性.
      

  4.   

    在HTML里,在列的性性里加上
     nowrap=true就是自动换行了
      

  5.   

    Thanks to jingtao_zhou(小熊) 
    dataGridTableStyle.GridColumnStyles.Add(dataGridTextBoxColumn);
      dataGridTextBoxColumn=new DataGridTextBoxColumn();
     dataGridTextBoxColumn.MappingName="JiChuSheShi";
      dataGridTextBoxColumn.HeaderText="基础设施";
    dataGridTextBoxColumn.TextBox.Multiline=true;//没用,怎么设置呀
      

  6.   

    较多信息的字段 在 DATAGRID  显示,有三种解决方案,根据大家的界面需求,大家可以选择如下方式:1.  数据 不换行 完整数据在单元格内 一行 输出       解决方法:      <itemstyle wrap="False"></itemstyle>          功能缺陷:    数据 过长时 将会 破坏 页面布局,界面横向扩增 另操作者 浏览数据 不方便2.  数据 自动换行 在单元格内 完整显示       解决方法:    DataGrid_ItemDataBound  事件 中 控制 如:    //对于没有数字的内容,下面这行完全满足要求,但加了数字就不行,必须调用OnItemDataBound
        //ItemsGrid.Attributes.Add("style","word-break:keep-all;word-wrap:normal");    //下面这行是让你的 DataGrid 所有单元 自动换行
        //this.dgPublicDataGrid.Attributes.Add("style","word-break:break-all;word-wrap:break-word;");
        
        //下面这行是 指定的数据列 自动换行
        //e.Item.Cells[3].Attributes.Add("style","word-break:break-all;word-wrap:break-word");        功能缺陷:同样会破毁  页面布局 界面纵向扩增 另操作者 浏览数据 不方便3.  数据 存放在 TextBox 中 隐藏显示       解决方法: 在 DATAGRID  中 增加 模版列 放入 TextBox    ,在数据 邦定时 控制 TextBox 的CssClass        .ASPX 文件:<asp:templatecolumn headertext="MovementDescription">
    <headerstyle width="20%"></headerstyle>
    <itemstyle wrap="False"></itemstyle>
    <itemtemplate>
      <asp:textbox id="txtACTI_DESC" runat="server" width="100%"></asp:textbox>
    </itemtemplate>
    </asp:templatecolumn>        .CS 文件:private void dgPublicDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
       if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
       {
        DataRowView drv = (DataRowView)e.Item.DataItem;
        TextBox txtTemp = (TextBox)e.Item.Cells[3].FindControl("txtACTI_DESC");
        txtTemp.Text = drv["ACTI_DESC"].ToString();
        txtTemp.ToolTip = txtTemp.Text;
        txtTemp.CssClass = "input_a_table_db1";
        //判断 当前 列表内的 数据 奇偶数 和 数据当前 行的 奇偶数
        if (System.Data.SqlTypes.SqlInt32.Mod(Int32.Parse(ViewState["intRowCount"].ToString()),2) == 0)
        {
         if (System.Data.SqlTypes.SqlInt32.Mod(e.Item.ItemIndex,2) != 0 )
          txtTemp.CssClass = "input_a_table_db2";
        }
        else{
         if (System.Data.SqlTypes.SqlInt32.Mod(e.Item.ItemIndex,2) == 0 )
          txtTemp.CssClass = "input_a_table_db2";
        
        } 
       }
         
    }       功能缺陷:数据显示 不完整 ,需要用户 拖拽 文本框 内部的数据,或者 用鼠标 触发 ToolTip 内容
      

  7.   

    谢谢上面的,
    可是我是在Winform 下开发的c/s的程序,不是aspx 呀