【问题标题】:customizing the auto generated grid view in asp.net/c#在 asp.net/c# 中自定义自动生成的网格视图
【发布时间】:2011-03-22 23:14:18
【问题描述】:

我正在通过我的网格视图中的 ItemTemplate 创建一个列,我如何将它调整为我的最后一列,不幸的是 .net 使该列成为网格视图中的第一个列,我希望它成为最后一列。其余列由此代码自动创建。

我是说

gridview1.datasource = myArrayList
gridview1.databind()

请帮帮我

感谢期待

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    不要使用自动生成功能 (AutoGenerateColumns="false") 并提供网格的 <columns> 集合中的列,或者使用 LINQ:

    var list = new List<MyClass>
    {
       new MyClass { Name = "A", Value = 1, Key = 1 }
    };
    
    gridView1.datasource = list.Select(i => new
    {
        i.Key,
        i.Name,
        i.Value
    });
    

    第一个选项在性能上会更好。

    【讨论】:

    • 嗨,我没有在我的项目中使用 Linq。我以这种方式从会话中获取数组列表。 ArrayList selectedComponentsForDownload = (ArrayList)Session["SelectedRowItems"]; SoftwareDownloadsGridView.DataSource = selectedComponentsForDownload; SoftwareDownloadsGridView.DataBind();我想使用项目模板在创建的gridview的末尾添加额外的列,但它总是首先创建列。我如何强制它成为最后一列?谢谢你的期待
    • @user653622 - 你不需要 linq,brain 只是举个例子。在您的情况下,在 gridview 属性中标记 AutoGenerateColumns = "false"。如果您在设计器上附加了数据源,则转到 GridView 的 Columns 属性并刷新架构,否则,手动添加列并使用您想要的任何字段填充特定列的 DataField 属性。
    • 是明确定义列。最简单、最高效的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多