lilyfirstone(憧憬) 给个例子吧,我是初学者,看到这么多属性头都大了!呵呵!
还有一个问题:
如何设置每一列的宽,比如
"序号"字段占5% "医 院 名 称"字段占10%等等!
谢了!

解决方案 »

  1.   

    我改了一下,字段的对齐方式已经解决了,但是问题还是不少,代码如下:<Asp:DataGrid id="dgMedi" runat="server" AutoGenerateColumns="false"
      PageSize="10" style="font-family: 宋体; font-size: 10.5pt;"
      PagerStyle-Mode="NumericPages" >
      
       <AlternatingItemStyle BackColor="#eeeeee">
       </AlternatingItemStyle>
     <Columns>
     
     <Asp:TemplateColumn runat="server">
      <ItemTemplate>
      <table width="100%" cellpadding="0" border="1" cellspacing="3" runat="server" style="font-family: 宋体; font-size: 10pt">
       <tr>
         <td width="5%">
           <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"xh")   %>' runat="server" />
         </td>
         
         <td width="20%">
           <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"yymc") %>' runat="server" />
         </td>
         
         <td Align="Right" width="35%">
           <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"gjzcrs") %>' runat="server" />
         </td>
         
         <td Align="Right" width="20%">
            <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"zjzcrs") %>' runat="server" />
         </td>            ......    </tr>
        </table>
       </ItemTemplate>
      </Asp:TemplateColumn>
     </Columns>
    </Asp:DataGrid>问题一:因为每一行都是一个表格,这样显示出来的格式很难看。我想把整个显示数据的区域设置成一张表格,不用每一行一个table,作了如下更改
    <headerTemplate>
      <table width="100%" cellpadding="0" border="1" cellspacing="3" runat="server" style="font-family: 宋体; font-size: 10pt">
    </headerTemplate><ItemTemplate>
       <tr>
         <td width="5%">
           <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"xh")   %>' runat="server" />
         </td>
       </tr>
    ...
    </ItemTemplate>
    <footerTemplate>
      </table>
    </footerTemplate>
    显示的格式就乱了问题二:如果“中级职称人数”为空,表格的网格不能显示,怎样判断如果为空就用空格代替
    <Asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"zjzcrs") %>' runat="server" />
      

  2.   

    to: lilyfirstone(憧憬) 
    谢谢你的回答。
    解释一下:
    1、用绑定方式可以实现,但是我需要排序,所以准备在使用表格方式显示,表头用HyperLink控件触发排序事件。
    2、数据库中为空的字段的值是null,我希望转换成&nbsp;否则表格线不会显示。
      

  3.   

    选中Datagrid,点右键选择Property Builder,在对话框中选择左侧的format
    ,这时在右侧出现的树型结构中选择Columns,点击旁边的加号则可以看到Datagrid的所有列名,选择一列,在屏幕右侧即可设置列宽(根据像素,百分数等)
      

  4.   

    在可视化绑定列的时候也可以设每列的宽度,还是格式中,在对象里选择你想要变的列就可以了。
    还有datagrid不是有自动排序的功能吗,不用表格也可以,这是自动处理的呀,难道不能满足你的需要??
    另:我用datagrid时,即时数据库中字段为null,但显示出来就是空格,什么也没有。一切正常
      

  5.   

    <% @ Page Language="C#" %>
    <% @ Import Namespace="System.Data" %>
    <% @ Import Namespace="System.Data.OleDb" %>
    <Script Language="C#" Runat="Server">
    OleDbConnection MyConn;
    public void Page_Load(Object src,EventArgs e)
    {
    //连接语句
    string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(".")+"..\\DataBase\\db1.mdb;";
    MyConn = new OleDbConnection(MyConnString);
    MyConn.Open(); if(!Page.IsPostBack)
    {
    ViewState["SortField"] = "Name";
    BindGrid();
    }
    }
    ICollection CreateTable()
    {
    string strSel = "select * from Score";
    DataSet ds = new DataSet(); OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
    MyAdapter.Fill(ds,"Score"); return ds.Tables["Score"].DefaultView;
    }
    public void BindGrid()
    {
    DataView dv = (DataView)CreateTable();
    dv.Sort = (string)ViewState["SortField"] + " DESC";
    score.DataSource = dv;
    score.DataBind();
    }
    public void DataGrid_Sort(Object sender,DataGridSortCommandEventArgs e)
    {
    ViewState["SortField"] = (string)e.SortExpression;
    BindGrid();
    }
    </script>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form runat="server">
    <center>
    <b>演示排序功能</b>
    <asp:DataGrid id="score" runat="server"
    HeaderStyle-BackColor="#aaaadd"
    AlternatingItemStyle-BackColor="#eeeeee"
    AutoGenerateColumns="False"
    AllowSorting="True"
    OnSortCommand="DataGrid_Sort"
    >
    <Columns>
    <asp:BoundColumn HeaderText="姓名" SortExpression="Name" DataField="Name" ReadOnly="True" />
    <asp:BoundColumn HeaderText="语文" SortExpression="Chinese" DataField="Chinese" />
    <asp:BoundColumn HeaderText="数学" SortExpression="Math" DataField="Math" />
    <asp:BoundColumn HeaderText="英语" SortExpression="English" DataField="English" />
    </Columns>
    </asp:DataGrid>
    </center>
    </form>
    </body>
    </html>
    这是别人的一个datagrid排序的例子
      

  6.   

    to::lilyfirstone(憧憬) 
    "在可视化绑定列的时候也可以设每列的宽度,还是格式中"
    分别怎么设置?在帮助中我找不到!比如,我想设置第一列的宽度为5%,对齐方式:right.