我是ASP.NET的初学者,用DataGrid做一个查询数据库的功能,界面见:http://shliqq.vicp.net/datagrid.jpg,大致的作法是:调用SqlServer的存储过程,绑定DataGrid,查是可以查询,但界面实在是太恐怖了,有没有办法美化一下:
1、“单据类型”、“状态”列不要自动换行;
2、“应收”“实收”等数值型格式变为“#,##0.00”,然后右对齐,数据为0不显示;
3、摘要一列太宽,有没有办法固定到一个列宽。
在线求救!
谢谢!

解决方案 »

  1.   

    你说的这几个问题在属性生成器里都可以解决的,具体来说是这几个属性:
    1.不要换行只要设置DataGrid的属性就可以了,<HeaderStyle Wrap="False"></HeaderStyle>
    2.格式化显示在帮定列中使用DataFormatString属性,右对齐使用<ItemStyle HorizontalAlign=Right></ItemStyle>
    3.设置列宽只要在绑定列中设置width属性就可以了,<HeaderStyle Width="100px"></HeaderStyle>
      

  2.   

    你的问题其实很好解决
    稍微设置一下风格就行了的
    好好看看.DataGrid很好用,很强大的
    你还可以动态更改Item的风格,详细自己,然后相信ms
      

  3.   

    成功了80%,见http://shliqq.vicp.net/datagrid.jpg。
    还有一样没解决:格式化金额的问题。
    fengzhimei兄说的“绑定列中设置width属性就可以了”那是指绑定列吧?我用的是模板列,好象就没有这个属性了:(
    不知道有什么办法可以解决?
      

  4.   

    1、“单据类型”、“状态”列不要自动换行;----选中DataGrid后选属性,然后在格式中设置。
    2、“应收”“实收”等数值型格式变为“#,##0.00”,然后右对齐,数据为0不显示;——在数据格式一栏中设为{0:C}可显示为人民币表示格式。
    3、摘要一列太宽,有没有办法固定到一个列宽———同1
      

  5.   

    感谢仁渣兄,已经完成了90%,见http://shliqq.vicp.net/OK.jpg
    相关代码如下:
    <asp:TemplateColumn HeaderText="应收">
    <HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" Width="100px"></HeaderStyle>
    <ItemStyle Font-Size="X-Small" Wrap="False" HorizontalAlign="Right"></ItemStyle>
         <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "FYs", "{0:N}") %>
         </ItemTemplate>
    </asp:TemplateColumn>
    美中不足的是,数据为0不显示还是没法做到。
      

  6.   

    美中不足的是,数据为0不显示还是没法做到。
    方法有2:
    1、遍历数据源,将该列为0的改为"";
    2、改页面,顶部添加<%@ Import namespace="System.Data"%>
    <%# DataBinder.Eval(Container.DataItem, "FYs", "{0:N}") %>改为
    <%# ((RowView)Container.DataItem)["FYs"].ToString()=="0" ? "" : DataBinder.Eval(Container.DataItem, "FYs", "{0:N}")%>
      

  7.   

    多谢GOD的回复!1、数据源是经过查询语句生成的,填入DataSet,请问能把DataSet里的0改为""吗?
    2、照您说的做了,但是编译出错:
    CS0246: 找不到类型或命名空间名称“RowView”(是否缺少 using 指令或程序集引用?)
    可是,我明明已经将<%@ Import namespace="System.Data"%>添加了呀?还望GOD同志多多指点!谢谢!
      

  8.   

    多谢GOD的回复!1、数据源是经过查询语句生成的,填入DataSet,请问能把DataSet里的0改为""吗?
    2、照您说的做了,但是编译出错:
    CS0246: 找不到类型或命名空间名称“RowView”(是否缺少 using 指令或程序集引用?)
    可是,我明明已经将<%@ Import namespace="System.Data"%>添加了呀?还望GOD同志多多指点!谢谢!