Hallo,

> .
> 
> die anderen zwei ddls, die in abh�ngigkeit von ddlMarke sind, 
> f�lle ich 
> innerhalb des geladenen controls durch einen postback beim 
> itemChange des 
> ddlMarke. wahrscheinlich muss ich die anderen zwei ddls dann 
> auch von meiner 
> default.aspx aus f�llen, nur wie kann ich das machen, wenn 
> ich erst nach dem 
> page_load den gew�hlten wert meiner ddlMarke abfragen kann ? ? ? :-/
> 
> 

ich habe mal versucht, Dein Problem nach meinem Verst�ndnis
mit der Northwind DB nachzubauen.
In der tb.aspx wird das Control tb.ascx zu Laufzeit aufgerufen.
Au�erdem wird die Methode FillDropDownlList1 des UC aufgerufen.
Diese holt die Kunden der Northwind und bindet diese an DDL1.
Wenn in DDL1 der Index wechselt, werden in DDL 2 alle Bestellungen
des Kunden gelistet (in der DDL steht der Einfachheit halber nur
der Name des Kunden, relevant ist das Value-Feld von DDL2).
�ndert sich nun was in DDL2, werden die Produkte (bzw. deren
ID) zu der ausgew�hlten Bestellung in DDL3 angezeigt.

Code anbei.

Gruss

Alex

tb.aspx(.cs):
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace test
{
        /// <summary>
        /// Zusammenfassung f�r tb.
        /// </summary>
        public class tb : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.PlaceHolder plhtb;

                private void Page_Load(object sender, System.EventArgs e)
                {
                        tbuc uc1 = (tbuc)Page.LoadControl("tb.ascx");
                        uc1.ID = "uc1";
                        uc1.FillDropDownList1();
                        plhtb.Controls.Add(uc1);
                }

                #region Vom Web Form-Designer generierter Code
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: Dieser Aufruf ist f�r den ASP.NET Web
Form-Designer erforderlich.
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
                
                /// <summary>
                /// Erforderliche Methode f�r die Designerunterst�tzung. 
                /// Der Inhalt der Methode darf nicht mit dem Code-Editor
ge�ndert werden.
                /// </summary>
                private void InitializeComponent()
                {    
                        this.Load += new
System.EventHandler(this.Page_Load);

                }
                #endregion
        }
}

<%@ Page language="c#" Codebehind="tb.aspx.cs" AutoEventWireup="false"
Inherits="test.tb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html 
lang="en">
  <head>

<title>tb</title>

<meta name="vs_defaultClientScript" content="JavaScript" >
<meta name="vs_targetSchema" content="http://www.w3.org/1999/xhtml"; >
  </head>

<body>

<form id="tb" method="post" runat="server">

<asp:placeholder id="plhtb" runat="server" />
</form>

</body>
</html>

tb.ascx(.cs):
namespace test
{
        using System;
        using System.Data;
        using System.Data.SqlClient;
        using System.Drawing;
        using System.Web;
        using System.Web.UI.WebControls;
        using System.Web.UI.HtmlControls;

        /// <summary>
        ///             Zusammenfassung f�r tb1.
        /// </summary>
        public class tbuc : System.Web.UI.UserControl {
                protected System.Web.UI.WebControls.DropDownList
DropDownList1;
                protected System.Web.UI.WebControls.DropDownList
DropDownList2;

                protected System.Web.UI.WebControls.DropDownList
DropDownList3;

                private void Page_Load(object sender, System.EventArgs e) {

                }


                public void FillDropDownList1() {
                        DropDownList1.DataSource = ReadCustomers();
                        DropDownList1.AutoPostBack = true;
                        DropDownList1.DataValueField = "CustomerID";
                        DropDownList1.DataTextField = "CompanyName";
                        DropDownList1.DataBind();
                }

                private DataSet ReadCustomers() {
                        SqlConnection MyNWConn = 
                                new
SqlConnection("Server=(local)\\NETSDK;Database=Northwind;Trusted_Connection=
True");
                        DataSet MyDataSet = new DataSet();
                        SqlDataAdapter oCommand = new SqlDataAdapter();
                        SqlCommand oledbcmd = new SqlCommand();
                        oledbcmd.CommandType = CommandType.Text;
                        oledbcmd.CommandText = "Select * from Customers";
                        oledbcmd.Connection = MyNWConn;
                        oCommand.SelectCommand = oledbcmd;
                        oCommand.Fill(MyDataSet,"Customers");
                        MyNWConn.Close();
                        return MyDataSet;
                }

                private DataSet ReadOrders(string CustomerID) {
                        SqlConnection MyNWConn = 
                                new
SqlConnection("Server=(local)\\NETSDK;Database=Northwind;Trusted_Connection=
True");
                        DataSet MyDataSet = new DataSet();
                        SqlDataAdapter oCommand = new SqlDataAdapter();
                        SqlCommand oledbcmd = new SqlCommand();
                        oledbcmd.CommandType = CommandType.Text;
                        oledbcmd.CommandText = "Select * from Orders WHERE
CustomerID = @CustomerID";
                        oledbcmd.Connection = MyNWConn;
                        oledbcmd.Parameters.Add("@CustomerID", CustomerID);
                        oCommand.SelectCommand = oledbcmd;
                        oCommand.Fill(MyDataSet,"Orders");
                        MyNWConn.Close();
                        return MyDataSet;
                }


                private DataSet ReadOrderDetails(int OrderID) {
                        SqlConnection MyNWConn = 
                                new
SqlConnection("Server=(local)\\NETSDK;Database=Northwind;Trusted_Connection=
True");
                        DataSet MyDataSet = new DataSet();
                        SqlDataAdapter oCommand = new SqlDataAdapter();
                        SqlCommand oledbcmd = new SqlCommand();
                        oledbcmd.CommandType = CommandType.Text;
                        oledbcmd.CommandText = "Select * from [Order
Details] WHERE OrderID = @OrderID";
                        oledbcmd.Connection = MyNWConn;
                        oledbcmd.Parameters.Add("@OrderID", OrderID);
                        oCommand.SelectCommand = oledbcmd;
                        oCommand.Fill(MyDataSet,"Orders");
                        MyNWConn.Close();
                        return MyDataSet;
                }

                #region Vom Web Form-Designer generierter Code
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: Dieser Aufruf ist f�r den ASP.NET Web
Form-Designer erforderlich.
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
                
                /// <summary>
                ///             Erforderliche Methode f�r die
Designerunterst�tzung
                ///             Der Inhalt der Methode darf nicht mit dem
Code-Editor ge�ndert werden.
                /// </summary>
                private void InitializeComponent()
                {
                        this.Load += new EventHandler(this.Page_Load);
                        this.DropDownList1.SelectedIndexChanged += new
EventHandler(DropDownList1_SelectedIndexChanged);
                        this.DropDownList2.SelectedIndexChanged += new
EventHandler(DropDownList2_SelectedIndexChanged);
                }
                #endregion

                private void DropDownList1_SelectedIndexChanged(object
sender, EventArgs e) {
                        DropDownList2.DataSource =
ReadOrders(DropDownList1.Items[DropDownList1.SelectedIndex].Value);
                        DropDownList2.AutoPostBack = true;
                        DropDownList2.DataValueField = "OrderID";
                        DropDownList2.DataTextField = "ShipName";
                        DropDownList2.DataBind();
                }

                private void DropDownList2_SelectedIndexChanged(object
sender, EventArgs e) {
                        DropDownList3.DataSource =
ReadOrderDetails(int.Parse(DropDownList2.Items[DropDownList2.SelectedIndex].
Value));
                        DropDownList3.AutoPostBack = true;
                        DropDownList3.DataValueField = "ProductID";
                        DropDownList3.DataTextField = "ProductID";
                        DropDownList3.DataBind();
                }
        
        }
}


<%@ Control Language="c#" AutoEventWireup="false" Codebehind="tb.ascx.cs"
Inherits="test.tbuc"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<asp:DropDownList id="DropDownList1"
runat="server"></asp:DropDownList><asp:DropDownList id="DropDownList2"
runat="server"></asp:DropDownList><asp:DropDownList id="DropDownList3"
runat="server"></asp:DropDownList>


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an