title image


Smiley INTERESSANTES ERGEBNIS....
FOLGENDE DISKUSSION FÜHRTE ICH IN EINEM ANDEREN FORUM:::









Ich werd langsam wahnsinnigHabe eine Page mit 2 DDL's.HTML CODE:==========



<asp:dropdownlist id=ddlLagerort runat="server"

DataSource="<%# _KMLVDataSet %>"

DataMember="vLagerAndLagerorte"

DataTextField="LOBez"

DataValueField="LONr">

</asp:dropdownlist>

<asp:dropdownlist id=ddlLieferanten runat="server"

DataSource="<%# _KMLVDataSet %>"

DataMember="vLieferantenInfo"

DataTextField="Bez"

DataValueField="Nr">

</asp:dropdownlist> 

Codebehind (C#):================



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

{

if(!Page.IsPostBack)

 {

 //BusinessLayer

 LagerOrtFacade lagerort = new LagerOrtFacade();

 LieferantFacade lieferant = new LieferantFacade();

 // Get Data

 lieferant.getLieferantenInfo(this._KMLVDataSet);

 lagerort.getLagerAndLagerorte(this._KMLVDataSet);

 //DataBinding

 ddlLagerort.DataBind();

 ddlLieferanten.DataBind();

 }

}

Wenn ich einen Button klicke sind die DDL's nach dem Page_Load (RoundTrip) leer.

Wie komm ich aus dem Schlamassel raus? Ich brauch doch meine Daten!! :(Hiiilfe!____________________Liebe Grüsse und viel Spass bei der ArbeitYveX







 



















Erstellt  am: 16.01.2006 :  11:06:56 Uhr







hi, ich würde die DataSource im CodeBehind setzenso wie du das gemachst hast, hab ich es noch nie gesehen :D.D.h.ddlLagerort.DataSource=_KMLVDataSetddlLagerort.DataMember="vLieferantenInfo"ddlLagerort.DataTextField="Bez"ddlLagerort.DataValueField="Nr"ddlLagerort.DataBind();ddlLieferanten.DataSource=KMLVDataSetddlLieferanten.DataMember="vLieferantenInfo"ddlLieferanten.DataTextField="Bez"ddlLieferanten.DataValueField="Nr"ddlLieferanten.DataBind();im Page_Load Prozedur. EnabledViewstate ist ja auf true odeR?Gruss plongoWoher soll ich wissen, was ich denke, bevor ich höre, was ich sage!---------------------Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.---------------------

www.andreas-nicole.de















Erstellt  am: 16.01.2006 :  11:20:15 Uhr





Hallo plongo_291Ja, klar ist der ViewState enabled.Glaub mir, ich hab schon so einiges probiert.Deshalb (leider) auch schon deine Version:HTML:=====

<asp:DropDownList id="ddlLagerorte" runat="server"></asp:DropDownList>

<asp:DropDownList id="ddlLieferanten" runat="server"></asp:DropDownList>

Code behind (C#):==============private void Page_Load(object sender, System.EventArgs e)

{

if(!Page.IsPostBack)

    {

        _KMLVDataSet = new KMLVDataSet();       

        LagerOrtFacade lagerort = new LagerOrtFacade();

        LieferantFacade lieferant = new LieferantFacade();



        // Get Data

        lieferant.getLieferantenInfo(this._KMLVDataSet);

        lagerort.getLagerAndLagerorte(this._KMLVDataSet);

               

        this.ddlLieferanten.DataSource = this._KMLVDataSet;

        this.ddlLieferanten.DataMember = "vLieferantenInfo";

        this.ddlLieferanten.DataTextField = "Bez";

        this.ddlLieferanten.DataValueField = "Nr";



        this.ddlLagerorte.DataSource = this._KMLVDataSet;

        this.ddlLagerorte.DataMember = "vLagerAndLagerorte";

        this.ddlLagerorte.DataTextField = "LOBez";

        this.ddlLagerorte.DataValueField = "LONr";

               

        this.ddlLieferanten.DataBind();

        this.ddlLagerorte.DataBind();

    }

}

Und wenn ich das richtig sehe müsste das doch stimmen --> if(!Page.IsPostBack) ?!?KEIN ERFOLG!Nach dem Roundtrip sind die Dinger leer!Wenn ich if(!Page.IsPostBack) weglasse sind sie natürlich gefüllt, jedoch behalten sie den SelectedIndex nicht. (= -1)Was soll ich denn noch tun?____________________Liebe Grüsse und viel Spass bei der ArbeitYveX





Bearbeitet von: YveX am: 16.01.2006 11:21:17 Uhr





























Erstellt  am: 16.01.2006 :  12:07:44 Uhr





Merkwürdig.Ich programmiere ja mit vb.net.und wenn ich inhalte für eine ddl aus einer datenbank entnehme, mach ich es genauso wie du.im Page_Load setze ich die datasource für die ddl.Klar ist ja das ich es nur machen wenn nich kein Postback stattgefunden hat. Also if not Page.IsPostBack then.... EnabledViewSate ist auf true für das ddl. logisch.Du hast nirgends im code der das evtl. zurücksetzt? Zeig mir doch mal den Code der nach dem Roundtrip ausgeführt wird!So sieht es mir korrekt aus, auch wenn ich kein C# programmiere.Gruss plongoWoher soll ich wissen, was ich denke, bevor ich höre, was ich sage!---------------------Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.--------------------- www.andreas-nicole.de





























Erstellt  am: 16.01.2006 :  12:38:08 Uhr







HTML:=====<%@ Page language="c#" Codebehind="Eingang.aspx.cs" AutoEventWireup="false" inherits="Bell.KMLV.Web.Content.Pages.ProtectedArea.Eingang" %>

                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

                      <HTML>

                          <HEAD>

                              <title>WebForm1</title>

                              <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">

                              <meta content="C#" name="CODE_LANGUAGE">

                              <meta content="Javascript" name="vs_defaultClientscript">

                              <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

                              <LINK href="http://intranet.bell.ch/default.css" type="text/css" rel="stylesheet">

                          </HEAD>

                          <body>

                              <form id="Form1" runat="server">

                                  <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0">

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 24px">

                                          Artikel:

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 24px">

                                          <asp:label id="lblArtNr" runat="server"></asp:label>

                                          <asp:label id="lblBez" runat="server"></asp:label>

                                      </TD>

                                      <TD style="HEIGHT: 24px"> </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 12px">

                                          Artikel Nummer (extern):

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 12px">

                                          <asp:textbox id="txtExtArtNr" runat="server" Width="144px"></asp:textbox>

                                      </TD>

                                      <TD style="HEIGHT: 12px">

                                      </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 23px">

                                          Menge:

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 23px">

                                          <asp:textbox id="txtMenge" runat="server" Width="144px" MaxLength="5">

                                          </asp:textbox>

                                      </TD>

                                      <TD style="HEIGHT: 23px">

                                      </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 12px">

                                          Preis p.Stk.

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 12px">

                                          <asp:textbox id="txtPreis" runat="server" Width="144px"></asp:textbox>

                                      </TD>

                                      <TD style="HEIGHT: 12px">

                                      </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 1px">

                                          Lager / Lagerort

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 1px">

                                          <asp:dropdownlist id=ddlLagerort runat="server"></asp:dropdownlist>

                                      </TD>

                                      <TD style="HEIGHT: 1px">

                                      </TD>

                                  </TR>   

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 16px">

                                          Lieferant:

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 16px">

                                          <asp:dropdownlist id=ddlLieferanten runat="server"></asp:dropdownlist>

                                      </TD>

                                      <TD style="HEIGHT: 16px">

                                      </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 14px">

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 14px">

                                      </TD>

                                      <TD style="HEIGHT: 14px">

                                      </TD>

                                  </TR>

                                  <TR>

                                      <TD style="WIDTH: 137px; HEIGHT: 13px">

                                      </TD>

                                      <TD style="WIDTH: 412px; HEIGHT: 13px">

                                      </TD>

                                      <TD style="HEIGHT: 13px">

                                          <P align="right">

                                              <asp:button id="_btnSave" runat="server" Text="speichern">

                                              </asp:button>

                                          </P>

                                      </TD>

                                  </TR>

                                  </TABLE>

                              </form>

                          </body>

                      </HTML>

  CODEBEHIND: (C#):===============

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;

using System.Diagnostics;



using Bell.KMLV.Web.Basic;

using Bell.KMLV.Common.DataSets;

using Bell.KMLV.DomainLayer.Facades;



namespace Bell.KMLV.Web.Content.Pages.ProtectedArea

{

   

   

   

   

   

   

public class Eingang : ProtectedPage

    {

        protected System.Web.UI.WebControls.TextBox txtPreis;

        protected System.Web.UI.WebControls.Label lblArtNr;

        protected System.Web.UI.WebControls.Label lblBez;

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

        protected System.Web.UI.WebControls.TextBox txtMenge;

        protected System.Web.UI.WebControls.TextBox txtExtArtNr;

        protected Bell.KMLV.Common.DataSets.KMLVDataSet _KMLVDataSet;

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

        protected System.Web.UI.WebControls.Button _btnSave;



        override protected void OnInit(EventArgs e)

        {

            InitializeComponent();

            base.OnInit(e);

        }

       

       

private void InitializeComponent()

        {   

            this._KMLVDataSet = new Bell.KMLV.Common.DataSets.KMLVDataSet();

            ((System.ComponentModel.ISupportInitialize)(this._KMLVDataSet)).BeginInit();

            //

            // _KMLVDataSet

            //

            this._KMLVDataSet.DataSetName = "KMLVDataSet";

            this._KMLVDataSet.Locale = new System.Globalization.CultureInfo("en-US");

            this._btnSave.Click += new System.EventHandler(this._btnSave_Click);

            this.Load += new System.EventHandler(this.Page_Load);

            ((System.ComponentModel.ISupportInitialize)(this._KMLVDataSet)).EndInit();

        }

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

        {

            try

            {

                this._KMLVDataSet = (KMLVDataSet)Session["KMLVDataSet"];

            }

            catch

            {

                _KMLVDataSet = new KMLVDataSet();

            }

 

if(!Page.IsPostBack)

            {

                LagerOrtFacade lagerort = new LagerOrtFacade();

                LieferantFacade lieferant = new LieferantFacade();

       

                lieferant.getLieferantenInfo(this._KMLVDataSet);

                lagerort.getLagerAndLagerorte(this._KMLVDataSet);

               

                this.ddlLieferanten.DataSource = this._KMLVDataSet;

                this.ddlLieferanten.DataMember = "vLieferantenInfo";

                this.ddlLieferanten.DataTextField = "Bez";

                this.ddlLieferanten.DataValueField = "Nr";

       

                this.ddlLagerort.DataSource = this._KMLVDataSet;

                this.ddlLagerort.DataMember = "vLagerAndLagerorte";

                this.ddlLagerort.DataTextField = "LOBez";

                this.ddlLagerort.DataValueField = "LONr";

                       

                this.ddlLieferanten.DataBind();

                this.ddlLagerort.DataBind();

       

Session.Add("KMLVDataSet", this._KMLVDataSet);

            }

        }

       

       

private void _btnSave_Click(object sender, System.EventArgs e)

        {

            try

            {

                // Das Parsing fehlschlägt wurde ein Lager und kein Lagerort selektiert!

                //(Value der Dropdownliste ist kein integer)

               

             

int i = int.Parse(this.ddlLagerort.SelectedValue);

       

                EingangFacade eingang = new EingangFacade();

                eingang.addEingang(int.Parse(this.lblArtNr.Text),

                        this.txtExtArtNr.Text,

int.Parse(this.txtMenge.Text),

                        decimal.Parse(this.txtPreis.Text, System.Globalization.NumberStyles.Currency),

int.Parse(this.ddlLieferanten.SelectedValue),

int.Parse(this.ddlLagerort.SelectedValue));

                   

                eingang.getEingang(this._KMLVDataSet);

               

int max=0;

       

                #region get max id from tEingang

               

foreach(DataRow r in this._KMLVDataSet.tEingang.Rows)

                {  

if(int.Parse(r["id"].ToString()) > max)

                    {

                        max = int.Parse(r["id"].ToString());

                    }

                }

                #endregion

                       

                BestandFacade bestand = new BestandFacade();

                bestand.addBestand(int.Parse(this.lblArtNr.Text),

                  int.Parse(this.ddlLagerort.SelectedValue),

                        decimal.Parse(this.txtPreis.Text, System.Globalization.NumberStyles.Currency),

                        max,

int.Parse(this.txtMenge.Text));

            }

            catch{}

        }

    }

}

  DA SOLL MIR MAL EINER SAGEN WAS UM ALLES IN DER WELT DA FALSCH IST!!!?!?!?!?!?!?!Ich hab schon X Seiten dieser Art die vom gleichen Objekt wie diese erben - da funtzt Alles!!!KANN MIR BITTE JEMAND HELFEN?!?!?!BIIIIIIIIITTE ____________________Liebe Grüsse und viel Spass bei der ArbeitYveX





Bearbeitet von: YveX am: 16.01.2006 13:52:31 Uhr

























Erstellt  am: 16.01.2006 :  14:20:35 Uhr







Wieso erzeugst Du im Init das KMLVDataSet ??Im PageLoad überschreibst Du event. doch wieder!!Meine Vermutung ist: das DataSet ist leer! In der Session steht nix, und damit erzeugst Du das Ding neu - und leer.....Gruß,HeronWarum so einfach, wenn's auch kompliziert geht?











Erstellt  am: 16.01.2006 :  14:42:25 Uhr





Du meinst also ich soll das da weg nehmen:?

try

{

      this._KMLVDataSet = (KMLVDataSet)Session["KMLVDataSet"];

}

catch

{

      _KMLVDataSet = new KMLVDataSet();

}   Gemacht.Klar, das DataSet wird autom. referenziert. *SORRY, zu dumm zum busfahren*Wahrscheinlich ein Produkt meiner verzweiflten Suche nach dem Fehler... ABER: IMMERNOCH LEER!!!! VERDA**T! DAS NERVT! (ich hoff nur ich bin nicht selber schuld :o))AM WICHITGSTEN: DAS DATASET IST BUMSVOLL!!!!!!!!Die DataSource der DropDownListen verschwindet!!!!!!!!!!!!!Und frag nicht nochmal ob der Viewstate enabled ist!! ;o)____________________Liebe Grüsse und viel Spass bei der ArbeitYveX





Bearbeitet von: YveX am: 16.01.2006 15:54:10 Uhr 



















Erstellt  am: 16.01.2006 :  16:21:09 Uhr





Also ich kann da nichts falsches erkennen. Leider bin ich eben der Sprache nicht ganz mächtig.Also ich würde einfach mal das AutoEventWireup auf true setzenden EventHandler für Page_Load entfernen und das protected für die beiden DropDownList entfernen.Du sagst ja das beim ersten mal de DDL voll sind und beim Roundtrip dann leer. Ist für mich sehr merkwürdig. da du ja die Datasource setzt, wenn kein Postback stattgefunden hat. so mache ich dies ja auch immer.Ob das KMLVDataSet nun geändert wird, dürfte sich ja auf den ddl nicht auswirken, beim roundtrip.Gruss plongotut mir leid aber mehr kann ich da nicht erkennen. vielleicht bin ich ja auch blind.Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!---------------------Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.---------------------www.andreas-nicole.de





Bearbeitet von: plongo_291 am: 16.01.2006 16:21:41 Uhr 



















Erstellt  am: 16.01.2006 :  16:37:07 Uhr







Bringt alles nichts.Schade.Aber danke vielmals für deine Hilfestellung!Ich versteh einfach die Welt nicht mehrVielleicht sonst von irgendjemandem was Anderes?!Haaaalloooo?! Haaaaaaaaaaaaaaaaaaallooooooooooooooo!!?____________________Liebe Grüsse und viel Spass bei der ArbeitYveX











Erstellt  am: 16.01.2006 :  16:39:54 Uhr







vergleich doch einfach nochmal diese Seite mit den anderen. wo du sowas schonmal verwendest hast.Manchmal ist es nur eine Kleinigkeit..... Und deshalb such man Stunden lang...Gruss plongoWoher soll ich wissen, was ich denke, bevor ich höre, was ich sage!---------------------Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.---------------------www.andreas-nicole.de



















ICH HAB'S!!!!!! - BRAUCH ABER TROTZDEM NOCH HILFE Ich versteh's trotzdem nicht...Meine Page erbt von einer Klasse "ProtectedPage"Diese erbt von der Klasse "PublicPage".Diese erbt von "ContentPage".Diese erbt von "TracePage".Und zu guter Letzt erbt diese dann von "System.Web.UI.Page"Also:[Eingang] : ProtectedPage : PublicPage : ContentPage : TracePage : System.Web.UI.PageErstmal hab ich gemerkt dass wenn ich eine neue Page erstelle, die direkt von System.Web.UI.Page erbt, alles funzt!Also konnte es nur an meinen Klassen liegen von denen ich erbe!Ich machte mich also auf die Suche nach der Richtigen... (erbte von Versuch zu Versuch immer eine Ebene tiefer)...und wurde fündig!!Die Klasse "ContentPage" enthält folgenden Code:

using System;

using System.Web.UI;

using Bell.KMLV.Web.Content.Controls;





namespace Bell.KMLV.Web.Basic

{

    /// <summary>

    /// Base page with Header

    /// </summary>

   

   

   

public class ContentPage : TracePage

    {

        protected Control _header;

       



public ContentPage()

        {

        }



        protected override void onload(EventArgs e)

        {

           

int index;

           

String test;

       

            base.onload (e);



            _header = LoadControl("../../Controls/PageHeader.ascx");

           

           

for (index = 0; index < Controls.Count; index++)

            {

               

test = Controls[index].ID;

               

               

if (test != null)

                {

                    break;

                }

            }

            Controls.AddAt(index, _header);

        }



        protected void initHeader(String title, bool login)

        {

           

if (_header != null)

            {

                ((PageHeader)_header).setTitle(title);

                ((PageHeader)_header).setLogin(login);

            }

        }

    }

}   Wegen diesem Code sind meine DDL's nach einem RoundTrip leer!Kann mir jemand sagen was da dran schief sein soll?Hat es vielleicht damit zu tun dass ich hier den Index der Controls im Objekt ändere indem ich den Header vor dem ersten Control einfüge?!Ist es möglich das VisualStudio die Eigenschaften der Controls auf deren Index referenziert?! Oder sonst irgendwas komisches?Nein, das mit dem Index kanns nicht sein, sonst hätte ja ddl2 die Eigenschaften von ddl1 und ddl1 irgendwas ganz falsches was ganz sicher zu irgendeinem Fehler führen würde...?!Hmm... ich bin verdutzt ____________________Liebe Grüsse und viel Spass bei der ArbeitYveX





Bearbeitet von: YveX am: 19.01.2006 09:30:00 Uhr













 





!!!PROBLEM GELÖST!!!!Mein ehemaliger ASP.NET Kursleiter, Herr Kai Schlumberger, hat mir einen Hinweis gegeben: Im MSDN gibt es einen Artikel zum Thema dynamische Controls und View State(den vollständigen Artikel finden Sie über die Stichwörter "view state, dynamically added controls").Hier ein Auszug: Dynamic Controls and View StateWhen a control is created dynamically at run time, some information about the control is stored in the view state that is rendered with the page. When the page is posted back to the server, however, non-dynamic controls (those defined on the page) are instantiated in the Page.Init event and view state information is loaded before the dynamic controls can be recreated (generally in the Page_Load handler). Effectively, before the dynamic controls are recreated, view state is temporarily out of sync with the page's controls. After the Page_Load event has run, but before control event handling methods are called, the remaining view state information is loaded into the dynamically created controls.In most scenarios, this view state process
________________________ Danke vielmals! Gruss, YveX

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: