我有8个数据,做成了8个Datagrid,但其中有一个如果是有点大的负数,他就自动把负号和数字分成两行来显示。我选择 不换行在单元格里,结果什么都看不到,一片空白。怎么解决这个问题,感觉DataGrid的格式很难调。

解决方案 »

  1.   

    但这个列的长度变化很大,从几位到十几位。如果8个都这样设置,会变的很长。很奇怪的是,我也把Datagrid的宽度设的很大,但是他仍然换行了,虽然那一列还有很多空位。
      

  2.   

    那你看看你那数据是否过长比如sql的char型  以及oracle数据中有空白符
      

  3.   

    你在绑定的时候,先把数据tostring,再绑定,看那个负号还会不会自动换行了?
      

  4.   

    都是用的string.本来是个double,我直接用data.ToString(“0.00”)我还想如果用个空格补在前面会不会好些,结果还是一样的。太郁闷了。
      

  5.   

    to:zahuifan(杂烩饭) 
    原来一直都是用-号的,改成红色怕他们不习惯。如果实在不能 解决,我再考虑是不是按你说的改下,确实是个好建议。
      

  6.   

    测试 没有任何问题
    aspx
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 120px; POSITION: absolute; TOP: 224px"
    runat="server" AutoGenerateColumns="False" Width="256px">
    <Columns>
    <asp:BoundColumn DataField="col1" HeaderText="列1"></asp:BoundColumn>
    <asp:BoundColumn DataField="col2" HeaderText="列2">
    <ItemStyle Wrap="False"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="col3" HeaderText="列3"></asp:BoundColumn>
    </Columns>
    </asp:DataGrid>.csDataTable dt=new DataTable();
    dt.Columns.Add("col1");
    dt.Columns.Add("col2");
    dt.Columns.Add("col3");
    DataRow dr=dt.NewRow();
    dr[0]="5678904";
    dr[1]="-0.3457687987978777777777777777777777777777777";
    dr[2]="5678904";
    dt.Rows.Add(dr);
    this.DataGrid1.DataSource=dt;
    this.DataGrid1.DataBind();
      

  7.   

    出现这种情况应该是你没有用到<ItemStyle Wrap="False"></ItemStyle>,以及datagrid的外围容器大小过小 比如table之类
      

  8.   

    To:deadshot123(随风缘) 谢谢你为了我提的这个问题还专门去写测试程序。也许我该把我用到的说清楚些。我是用到了UserControl,Usercontrol里面用到了DataGrid.UserControl是这样的结构:最底层是Panel,上面放了个table,table 里面放了个datagrid.然后在别的页面里建了8个UserControl,从数据库取到不同的数据到这里面。然后就出现我说的问题了。在这上面不知道可不可以贴图,否则贴上来大家看看可能更直观些。
      

  9.   

    table我都没有指定大小。让他自己扩展。如果没有-,有的很长的数就能在一行内显示,有负号,其实也不怎么大,五六个数字,就换行了。
      

  10.   

    打算在前面补几个空格,可是datagrid自动把两边的空格给去掉了,有没有属性让他不要去空格?