2012-04-07 2 views
3

как показать listview внутри шаблона элемента управления gridview.
gridview перечислит все bill_id из table_bill, и представление списка свяжет все item_id и количество, имеющее определенный item_bill_id из table_bill_details.
table_bill схема как показать listview внутри элемента элемента управления gridview.

  • bill_id (первичный ключ)
  • bill_date
  • bill_customer_id (Foreign Key из этой таблицы, Происхождение таблица table_customer)
  • table_bill_details схема

  • item_id (первичный ключ)
  • количество
  • item_bill_id (Иностранный ключ этой таблицы, стол происхождения table_bill)

  • Я нуждался в пользовательском интерфейсе, как показано на следующем рисунке

    This is what i needed in user interface

    +0

    Почему вы хотите поместить ListView внутри GridView? Это похоже на помаду на свиньи:/ – IrishChieftain

    +1

    @IrishChieftain :: Мне нужно Это потому, что между table_bill и table_bill_details существует отношение «от 1 до многих». И этот метод поможет группировать записи table_bill_details вместе с table_bill в соответствии с отношением. В любом случае, я выполнил свой ответ. Я отправлю ответ очень скоро. –

    +0

    Схема базы данных не имеет ничего общего с тем, как вы показываете свои данные. Используйте шаблоны ListView. – IrishChieftain

    ответ

    4

    наконец я получил мой ответ. Просто сделай это так ...

    В файле .aspx


    <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 файл


    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; 
        } 
    
    } 
    

    Это все, что я хотел. Всем спасибо.

     Смежные вопросы

    • Нет связанных вопросов^_^