【问题标题】:ASP.NET an expandable grid view?ASP.NET 一个可扩展的网格视图?
【发布时间】:2009-08-21 21:26:07
【问题描述】:

我在互联网上找到了很多不同的例子,但似乎没有什么能满足我的要求。

我有一个生成如下内容的数据库视图:

-------------------------------------------------- - 公司 |代码 |总计 |可用 |二手 |需要 -------------------------------------------------- - 一 | 1 | 10 | 8 | 2 | 3 一 | 2 | 5 | 5 | 0 | 5 二 | 1 | 5 | 2 | 3 | 0 二 | 2 | 8 | 4 | 4 | 9 二 | 3 | 0 | 0 | 0 | 0 -------------------------------------------------- -

但我真的很想按公司汇总所有行,并能够根据需要展开查看详细信息。

类似于:

-------------------------------------------------- ---- 公司 |总计 |可用 |二手 |需要 -------------------------------------------------- ---- [+] 一个 | 15 | 13 | 2 | 8 -------------------------------------------------- ---- [-] 两码 | 13 | 6 | 7 | 9 -------------------------------------------------- ---- | 1 | 5 | 2 | 3 | 0 | 2 | 8 | 4 | 4 | 9 | 3 | 0 | 0 | 0 | 0 -------------------------------------------------- ----

我尝试在 gridview 中构建 gridview,但效果不佳。

如果无法使用 JavaScript 完成,我有一个视图会生成公司和摘要信息,这就是我认为可以完成的方式。

我只是在寻找一个免费的控制或一些聪明的想法,以其他方式实现这一点。 ASP.NET 的新手,所以我可能缺少一些简单的东西。

谢谢

【问题讨论】:

    标签: c# asp.net javascript gridview


    【解决方案1】:

    ListView 控件可能会给您带来更好的运气。

    Matt Berseth has a post 关于使用 ListView 控件创建此功能。

    【讨论】:

    • 他也有使用 GridView 的帖子
    • 经过一些操作后,我让它完全按照我的需要去做。谢谢!
    • 嗨,Jak,我正在处理与网格视图相同的问题,我希望获得您为此制定的代码,您可以发邮件给我
    【解决方案2】:

    这是一个带有手风琴的示例,但您可以使用其他东西:

    标记:

    <ajax:Accordion ID="Accordion1" runat="Server" 
        SelectedIndex="0" 
        HeaderCssClass="accordionHeader"
        HeaderSelectedCssClass="accordionHeaderSelected" 
        ContentCssClass="accordionContent"
        AutoSize="None" FadeTransitions="true" 
        TransitionDuration="250" FramesPerSecond="40"
        RequireOpenedPane="false" SuppressHeaderPostbacks="true">
        <HeaderTemplate><%# Eval("Key")%></HeaderTemplate>
        <ContentTemplate>
        <asp:ListView runat="server" ID="MyListView" DataSource='<%# Eval("Values") %>'> 
            <LayoutTemplate> 
                <table style="width:75%"> 
                    <tr> 
                        <th>Code</th> 
                        <th>Total</th>
                    </tr> 
                    <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
                </table> 
            </LayoutTemplate> 
            <ItemTemplate>
                <tr> 
                    <td><%# Eval("Code")%></td> 
                    <td><%# Eval("Total")%></td>
                </tr> 
            </ItemTemplate> 
        </asp:ListView> 
    
        </ContentTemplate>
    </ajax:Accordion>
    

    代码隐藏:

    public class Company
    {
        public string CompanyName;
        public int Code, Total;
        public Company(string company, int code, int total)
        {
            this.CompanyName = company; this.Code = code;
            this.Total = total;
        }
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            var Companies = new Company[] {
                new Company("One", 1, 10),
                new Company("Two", 1, 5),
                new Company("Two", 2, 8)
            };
    
            Accordion1.DataSource = Companies
                .GroupBy(c => c.CompanyName, c => new { Code = c.Code, Total = c.Total },
                (k, enumerable) => new { Key = k, Values = enumerable });
            Accordion1.DataBind();
    
        }
    }
    

    【讨论】:

    • 我喜欢它在视觉上的工作方式,但我需要能够单独扩展/收缩部件。谢谢你给我看这个:-)
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2011-05-11
    • 2016-11-24
    • 2021-03-04
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多