23. august 2003 - 13:40Der er
1 kommentar og 1 løsning
Nested repeater
Jeg har et problem med en repeater, som skal vise ordrer og ordrelinier for hver ordre... Problemet er at alle ordrelinier i databasen vises under hver ordre og altså ikke kun under den ordre, de faktisk hører til... Her er lidt kode:
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Public Class Orders Inherits System.Web.UI.Page Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents tbOrderId As System.Web.UI.WebControls.TextBox Protected WithEvents repOrders As System.Web.UI.WebControls.Repeater Protected WithEvents repItems As System.Web.UI.WebControls.Repeater Protected WithEvents lblOrderId As System.Web.UI.WebControls.Label Protected WithEvents ddlOrderStatus As System.Web.UI.WebControls.DropDownList Dim intOrderId As Integer Dim intOrderStatus As Integer
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here If Not Page.IsPostBack Then Get_StatusCodes(-1) End If If tbOrderId.Text = "" Then intOrderId = -1 Else intOrderId = CInt(tbOrderId.Text) End If If ddlOrderStatus.SelectedItem.Value = "Alle" Then intOrderStatus = -1 Else intOrderStatus = CInt(ddlOrderStatus.SelectedItem.Value) End If BindData()
End Sub
Private Sub BindData() repOrders.DataSource = Get_Orders(intOrderStatus, intOrderId).Tables("Orders") repOrders.DataBind() End Sub
Private Function Get_Orders(ByVal OrderStatus As Integer, ByVal OrderId As Integer) As DataSet Dim DbConnect As New DataAccess.objDataAccess() Dim dsOrderItems As New DataSet() Dim dsOrders As New DataSet() dsOrders = DbConnect.RunSPReturnDS("Select_Orders", "Orders", New SqlParameter("@OrderStatus", OrderStatus), New SqlParameter("@OrderId", OrderId)) dsOrderItems = DbConnect.RunSPReturnDS("Select_OrderItems", "OrderItems", New SqlParameter("@OrderStatus", OrderStatus), New SqlParameter("@OrderId", OrderId)) dsOrders.Merge(dsOrderItems) dsOrders.Relations.Add("OrderRelation", dsOrders.Tables("Orders").Columns("OrderId"), dsOrders.Tables("orderItems").Columns("OrderId")) Get_Orders = dsOrders End Function
Private Sub Get_StatusCodes(ByVal StatusCode) Dim DbConnect As New DataAccess.objDataAccess() Dim ds As New DataSet() ds = DbConnect.RunSPReturnDS("Select_StatusCodes", "OrderStatusCodes", New SqlParameter("@StatusCode", StatusCode)) ddlOrderStatus.DataSource = ds ddlOrderStatus.DataTextField = "Description" ddlOrderStatus.DataValueField = "StatusCode" ddlOrderStatus.DataBind() ddlOrderStatus.Items.Insert(0, "Alle") ddlOrderStatus.SelectedIndex = 0 End Sub
Private Sub repOrders_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles repOrders.ItemDataBound 'her Dim repOrderItems As New Repeater() repOrderItems = CType(e.Item.FindControl("repItems"), Repeater)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.