由于表的字段比较多,在DataGrid绑定后,页面需向右拉动才能显示完。但实际只需要显示部份列,请问如何实现。

解决方案 »

  1.   

    /// <summary>
    /// 按照显示设置中的配置绑定列。
    /// </summary>
    /// <param name="list">需要显示的字段的列表。</param>
    private void BindToColumn(ArrayList list)
    {
    list.TrimToSize();
    for(int i=0;i<list.Count;i++)
    {
    BoundColumn column = new BoundColumn();
    column.HeaderText = ((Callray.Data.ViewSetting.FieldInfo)list[i]).Alias;
    column.DataField = ((Callray.Data.ViewSetting.FieldInfo)list[i]).FieldName;
    if((column.DataField.IndexOf("Time") > 0) && (column.DataField.IndexOf("stamp") < 0))
    {
    column.DataFormatString = "{0:d}";
    column.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
    }
    //设置header属性
    column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
    column.HeaderStyle.Wrap = false;
    //设置item属性
    column.ItemStyle.Wrap = false;
    column.ItemStyle.HorizontalAlign = HorizontalAlign.Justify; TM_DataGrid.Columns.AddAt(i,column);
    }
    }
      

  2.   

    不要用自动的。
    在DataGrid上点右键选择属性生成器。在列选项中将在运行时自动创建列的勾选去掉。
    在列列表中设置你想要的列就行了。
      

  3.   

    <datagrid>
    <columns>
    <asp:boundcolumn HeaderText="现列名" datafield="原列名" visible=false(让它不显示)/>
    </columns>
    </datagrid>
      

  4.   

    你可以将列名动态从xml文件取.xml里保存列名.
    由用户自已选
      

  5.   

    不要用自动的。
    在DataGrid上点右键选择属性生成器。在列选项中将在运行时自动创建列的勾选去掉。
    在列列表中设置你想要的列就行了。
    <asp:datagrid id="DataGrid1" runat="server" Width="100%" AllowSorting="True" AllowPaging="True"
    PageSize="20" AutoGenerateColumns="False" CssClass="ourfont">
    <ItemStyle BackColor="WhiteSmoke"></ItemStyle>
    <HeaderStyle HorizontalAlign="Center" BackColor="#EAEAEA"></HeaderStyle>
    <Columns>
    <asp:BoundColumn Visible="False" DataField="user_id" HeaderText="userId"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="用户名">
    <HeaderStyle Width="144px"></HeaderStyle>
    <ItemTemplate>
    <%#System.Web.HttpUtility.HtmlEncode(DataBinder.Eval( Container.DataItem,"user_name" ).ToString())%>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="所属机构">
    <HeaderStyle Width="150px"></HeaderStyle>
    <ItemTemplate>
    <%#System.Web.HttpUtility.HtmlEncode(DataBinder.Eval( Container.DataItem,"node_name" ).ToString())%>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>
      

  6.   

    设置列的属性visible=false隐藏之
      

  7.   

    同意楼上的做法,如果在vs。net开发环境下,datagrid的属性生成对话框里面就有对具体列隐藏或者显示的设置,我记得是一个单选框
      

  8.   

    DataGrid1.Columns [4].Visible =false;
    这种方法不行啊。会出错。