首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在网格视图控件的项模板中显示列表视图。

如何在网格视图控件的项模板中显示列表视图。
EN

Stack Overflow用户
提问于 2012-04-07 21:13:19
回答 1查看 7.3K关注 0票数 5

如何在网格视图控件的项模板中显示列表视图。

网格视图将列出来自table_bill的所有table_bill,list视图将绑定所有的item_id和来自table_bill_details的具有特定item_bill_id的数量。

table_bill模式

  • bill_date

  • bill_customer_id (本表外键,原产地表为table_customer)

)

table_bill_details模式

  • quantity

  • item_bill_id (本表外键,原产地表为table_bill)

我需要在用户界面中,如下图所示

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-08 05:46:01

我终于得到了答案。照下面的方式做..。

在.aspx文件中

代码语言:javascript
复制
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
        <Columns> 
            <asp:TemplateField>
                <ItemStyle BackColor="#C2D88B" Width="250px" />
                <ItemTemplate>
                    <div class="id">
                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("bill_id") %>' ></asp:Label>
                    </div>
                    <div class="ex">
                        <p>
                            <asp:ListView ID="ListView1" runat="server">
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("item_id") %>'></asp:Label>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("quantity") %>'></asp:Label>
                                </ItemTemplate>
                                <ItemSeparatorTemplate>
                                <br />                                        
                                </ItemSeparatorTemplate>
                            </asp:ListView>
                        </p>
                    </div>
                </ItemTemplate>
            </asp:TemplateField>                 
        </Columns>
    </asp:GridView>

关于aspx.cs文件

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        DataSet ds = new DataSet();
        DataTable bill = new DataTable();
        bill.TableName = "cc";

        DataTable details = new DataTable();
        details.TableName = "ii";

        //Run necesserry commands to fill cc with values from table_bill & ii with values from table_bill_details

        ds.Tables.Add(catogory);
        ds.Tables.Add(item);
        DataRelation rel = new DataRelation("test", ds.Tables["cc"].Columns["bill_id"], ds.Tables["ii"].Columns["bill_id"]);
        ds.Relations.Add(rel);
        this.GridView1.DataSource = ds.Tables["cc"];
        GridView1.DataBind();
    }
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ListView inner = e.Row.FindControl("ListView1") as ListView;
        DataRowView drv = e.Row.DataItem as DataRowView;
        DataRow[] rows = drv.Row.GetChildRows("test");
        ArrayList lst = new ArrayList();
        for (int i = 0; i < rows.Length; i++)
        {
            Item ii = new Item(rows[i][2].ToString(), rows[i][1].ToString(), rows[i][0].ToString());
            lst.Add(ii);
        }

        inner.DataSource = lst;
        inner.DataBind();

        //drv.Row.

    }
}

class Item
{
    string quantity;

    public string Quantity
    {
        get { return quantity;}
        set { quantity = value; }
    }
    string item_id;

    public string Bill_id
    {
        get { return item_id;}
        set { item_id = value; }
    }
    string bill_id;

    public string Bill_id
    {
        get { return bill_id;}
        set { bill_id = value; }
    }

    public Item(string quantity, string bill_id)
    {
        this.quantity = quantity;
        this.item_id = item_id;
        this.bill_id = bill_id;
    }

}

这就是我想要的。谢谢大家。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10058443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档