Hej!
Jag har en gridview som skriver ut kategori och sedan alla artiklar under denna. När jag ska loopa igenom denna gridview, så ersätter kategorinamnet artikelnamnet, och antalet kommer på raden under...hur göra?
<asp:GridView CssClass="Form" ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="Kategori">
<ItemTemplate>
<asp:Label ID="CategoryName" runat="server" Text='<%# Eval("CategoryName") %>' Visible="False" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Artikel">
<ItemTemplate>
<asp:Label runat="server" ID="Art" Text='<%#eval("ArticleName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Antal" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:label runat="server" ID="Ant" Text='<%# eval("Kpd") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Codebehid:
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim drv As DataRowView = CType(e.Row.DataItem, DataRowView)
If tmpCategoryName <> drv("CategoryName").ToString() Then
tmpCategoryName = drv("CategoryName").ToString()
Dim tbl As Table = CType(e.Row.Parent, Table)
If Not tbl Is Nothing Then
Dim row As New GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
Dim cell As TableCell = New TableCell()
cell.ColumnSpan = GridView1.Columns.Count
cell.Width = Unit.Percentage(100)
cell.Style.Add("font-weight", "bold")
cell.Style.Add("background-color", "#dcdee2")
cell.Style.Add("color", "black")
Dim span As New HtmlGenericControl("span")
span.InnerHtml = tmpCategoryName
cell.Controls.Add(span)
row.Cells.Add(cell)
tbl.Rows.AddAt(tbl.Rows.Count - 1, row)
End If
End If
End If
End Sub
Vid spara (sparaknapp):
Private Sub SaveorderData()
Dim count As Integer = 0
Do While (count < GridView1.Rows.Count)
Dim ArticleName As Label = CType(GridView1.Rows(count).FindControl("ArticleName"), Label)
Dim Ant As TextBox = CType(GridView1.Rows(count).FindControl("Ant"), TextBox)
Response.Write(ArticleName.Text & " |" & Ant.Text)<br />")
count += 1
Loop
End Sub
Det jag får ut blir detta:
|1 (24)
Artikel2 |0 (0)
Artikel3 |1 (12)
|1 (8)
Kategorinamnet ersätter artikelnamnet, men antalet kommer med??!!
Hur kan man göra detta på ett korrekt sätt?