Laden...

Forenbeiträge von BK01 Ingesamt 203 Beiträge

08.01.2017 - 23:17 Uhr

Hallo zusammen,

ich versuche es mal so detailiert wie möglich zu beschreiben.

Ich habe ein GridView und in diesem Grid werden Daten angezeigt. Beim Seitenaufbau PageLoad und Init werden schon im Hintergrund TextBoxen und eine DropDownListe gebunden, welche allerdings nicht angezeigt werden. (Diese werden für Edit bzw. New benötigt)

Wenn ich auf eine Zeile im Grid klicke, dann wird ein onClick-Event="FunctionXY(this)" ausgeführt.

In der FunctionXY(tget) wird dann u.a. dieser Code ausgeführt:


$("[id*=pnlHidnFlds] >:nth-child(1) option[value='" + $("#" + target.attr("ID") + " td:nth-child(" + x + ")").attr("val") + "']").prop('selected', true);

und


$("[id*=pnlHidnFlds] >:nth-child(1)").trigger('chosen:updated');

Nachdem Funktionscall haben die Textfelder die Inhalte der Spalten des Grids, aber die DropDown Box hat immer den ersten Value, welcher sich in der DropDownBox befindet.

Ein Speichern zeigt allerdings, dass der Value im Hintergrund richtig sein muss, da trotz falscher Anzeige der richtige Wert gespeichert wird.

Also Beispiel:
Wert A, B und C stehen in der DropDown

Ich klicke im Grid auf eine Zeile mit C und in der DropDown wird A angezeigt. Klick auf Speichern = C

Beispiel 2:
Ich klicke im Grid auf eine Zeile mit C und in der DropDown wird A angezeigt. Bei click auf Cancel Button onclick= return document.location.reload(); Klick auf neue Grid Zeile mit Wert B und beim Laden steht wieder A drin.

Das ist alles Verhalten des IE.

Im FireFox ist das Verhalten (Beispiel2) leicht anders:
Klick im Grid auf eine Zeile mit B und es wird A angezeigt.
Bei click auf Cancel Button onclick= return document.location.reload();

Wird Seite refresht?! -> Klick auf neue Grid Zeile mit Wert C und beim Laden steht plötzlich Wert C drin. (Also der Wert der eigentlich beim ersten Aufruf hätte drin stehen müssen.)

Ich verstehe zum einen das unterschiedliche Verhalten nicht und zum anderen verstehe ich nicht, warum der Wert nciht korrekt dargestellt wird.

Hat jemand eine Idee woran es liegen könnte? (Mir würde es schon reichen, wenn es in einem Browser funktioniert.)

Vielen Dank
BK

26.09.2012 - 12:37 Uhr

Lösung: Das im DATASET gespeicherte UPDATE/INSERT Statement, war nicht exakt auf dem auktuellsten Stand, deswegen lief es nicht. Feldreihenfolge falsch. (Obwohl alle vorhanden waren, konnte der die Statements nicht zuordnen und hat keinen Fehler geworfen.....)

Egal, das ist die Lösung. Einfach Datenquelle komplett kicken neu reinziehen und es läuft.

26.09.2012 - 12:18 Uhr

Dein Link ist unnötig. Was hat es mit Magie zu tun? Im DataSet sind alle nötigen Funktionen Autogenerated vorhanden und sollten auch entsprechend ausgelöst werden.

26.09.2012 - 10:52 Uhr

Das sollte das Grid doch von alleine machen.

26.09.2012 - 10:38 Uhr

Hallo zusammen,

ich habe ein komisches Verhalten bei einer DataGridView.
Da es nur eine totale mini-App ist, bin ich diesen Weg gegangen:

DataGridView aus Toolbox --> Datenquelle ausgewählt, Tabelle ausgewählt, Enable Adding ausgewählt, Enable Editiing ausgewählt, Enable Deletig ausgewählt.


this.tbTESTTableAdapter.Fill(this.VerwaltungDataSet.tbTEST);

Wenn ich eine Zeile abändere, dann zeigt er es mir an, aber es wir nicht in die DB Commited. Einfügen und Löschen funktionieren auch nicht.

Ich habe jz zu Testzwecken noch nen Button hinterlegt mit:


this.TESTDataGridView.EndEdit(); 
this.TESTDataGridView.Refresh();    

Es passiert aber nichts. Wo ist mein Denkfehler?

Lieben Gruß
BK

12.12.2011 - 14:13 Uhr

Hallo zusammen,

also ich habe herausgefunden, dass es sich dabei um eine Problematik des IE9 handelt. Im alten IE und in anderen Browsern funktioniert die Seite absolut korrekt.

Falls ich eine Lösung über MS erhalte, werde ich diese hier posten.

Gruß
BK

07.12.2011 - 17:12 Uhr

Hallo

Falls du mit einem Website-Projekt arbeitest (nicht Webapplikation-Projekt), hast du das Page-Attribute
>
auf "true" gesetzt?

Habe sowohl AutoEventWireup true, wie auch false geprüft. Beide Einstellungen spiegeln das gleiche Verhalten wieder.

Hier ist der Quelltext aus dem IE9:


<div class="nxh">
    Geben Sie hier ein neues Wort ein:
</div>

<br />

<div class="nx">
    <div id="ctl00_ContentPlaceHolder1_Panel1" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_ContentPlaceHolder1_btnTest')">
	
        Neues Wort: <input name="ctl00$ContentPlaceHolder1$neues_wort" type="text" id="ctl00_ContentPlaceHolder1_neues_wort" style="width:200px;" />

        <select name="ctl00$ContentPlaceHolder1$status" id="ctl00_ContentPlaceHolder1_status" style="width:100px;">
		<option value="0">Alf</option>
		<option value="1">Frank</option>

	</select>
     
        <input type="submit" name="ctl00$ContentPlaceHolder1$btnTest" value="Test" id="ctl00_ContentPlaceHolder1_btnTest" />
        <span id="ctl00_ContentPlaceHolder1_output"></span>  
</div>
</div>

Hier die Stelle, die ich im Code habe:


<asp:Button ID="btnTest" runat="server" Text="Test" OnClick="btnTest_click" />
        <asp:Label ID="output" runat="server"></asp:Label>

Es is ein Website Projekt.
Masterpage, einbindung von Contentpages mit Funktionen wie "Hinzufügen von Text in DB" oder Editieren von Text. Wie gesagt bis vor kurzem lief es auch noch, doch aus irgendeinem unbekannten Grund läuft es nicht mehr. Also früher war IIS6 dahinter, jetzt IIS7. Kann da irgendeine Konfiguration so ein Verhalten hervorrufen?

LG
BK

07.12.2011 - 15:20 Uhr

Hallo,

also _OnClick _rein oder raus ist halt egal. Ich habe es reingesetzt, da es korrekter ist. Es funktioniert leider trotzdem nicht. 😦
Ich habe dieses Verhalten allerdings etwas einkreisen können.

Die Site wird mit Hilfe von einer MasterPage zusammengebaut und der Teil der sich im PlaceHolder --> ContentPlaceHolder1 befindet ist davon betroffen.

Das bedeutet, das legdiglich alles was im PlaceHolder geladen wird, keine Funktionalität mehr besitzt.

Vielleicht hat jemand mit dem neuen Ansatz eine Idee, woran bzw. warum dieses Verhalten so auftritt?

Lieben Gruß
BK

05.12.2011 - 10:09 Uhr

Hallo,

also es hat über ein Jahr ohne

onClick

funktioniert. Aber auch, wenn ich diese hinzufüge ändert sich leider nichts.

Der Link ist nicht schlecht. Nur ist es ziemlich aufwendig eine komplette Anwendung nach diesem Schema neu aufzubauen, nur weil ein blöder "KLICK" nicht mehr reagiert.

Hat vielleicht noch jemand eine andere Idee, warum ein KLICK mit definiertem Ereignis nicht mehr feuert?

Hier habe mein Problem gefunden und auch den Tipp mit SubmitBehavior her. Allerdings bringen mir die Lösungen leider nicht viel, da ich an meine TextBox.Text Inhalte nach dem Schema nicht mehr rankomme.... 😦

Lieben Gruß
BK

02.12.2011 - 11:32 Uhr

Hallo zusammen,

ich weiß nicht wie ich es anders beschreiben soll. Es ist so, ich habe eine Seite, die seit ewigkeiten lief. Jetzt wurde irgendwas auf dem Server geändert (maybe a ServicePack) und meine Buttons funktionieren nicht mehr.

Old:


<asp:TextBox ID="Words" runat="server" Width="200"></asp:TextBox>
<asp:Button ID="btn_AddWord" runat="server" Width="100" Text="speichern" /> 

Neu:


<asp:TextBox ID="Words" runat="server" Width="200"></asp:TextBox>
<asp:Button ID="btn_AddWord" runat="server" Width="100" Text="speichern" UseSubmitBehavior="false" />

Unterschied: UseSubmitBehavior="false"

Vorher: Ich klickte auf den Button und die Routine konnte die die TextBox auslesen und die Daten wurden importiert. Durch irgendeine nicht genau definierbare Änderung (recherchen zeigen u.a. auf SPs oder wechsel des IIS6 zu IIS7) macht der Button klick im alten Stil nichts mehr. Er ist einfach tot. Keine Funktion, kein Event wird ausgelöst, als wäre kein Code, keine Routine dahinter.

Nachher: Jetzt füge ich das UseSubmitBehavior ein und plötzlich laufen alle Routinen wieder los. Nur der Text der in meine TextBox eingetippt wurde und übermittelt werden soll, ist plötzlich weg.

Meine Frage: --> Was muss ich machen, damit meine Words.Text den Inhalt behält und nicht leer ist???

Ich hoffe, jemand kann mir dabei helfen.

Lieben Gruß
BK

02.05.2011 - 16:11 Uhr

Hallo MarsStein,

vielen herzlichen Dank. Jetzt muss ich nur noch meine Validierungsfunktion wieder ans laufen bekommen, dann ist das hoffentlich fertig.

Super Hilfe!

(Ich will nicht "nicht zwischenspeichern", ich darf es einfach nicht, da die 3. Anbieterkomponeten in diesem Fall einen Error wirft und ich diesen halt umgehen muss.)

Die Unterstützung hat mir sehr geholfen.

DANKE!!!

Gruß
BK

02.05.2011 - 15:00 Uhr

Also ich habe schon dutzende Sachen probiert und ich schaffe es einfach nicht, dass 2 TextBoxen hinzugefügt werden.

Ich habe eine TextBox und einen Button.
Ich klicke den Button und kann eine neue TextBox erstellen. Ich drücke den Button nochmal und es passiert nichts.

Auch der Repeater bringt mich hier nicht wirklich weiter.

Hier mal ein Auszug von meinen 100 letzten Versuchen:


        TextBox new_textbox = new TextBox();
        new_textbox.ID = "txt" + dynamicTextBox;
        new_textbox.Text = "";
        PlaceHolder.Controls.Add(new_textbox);

        string OptionID = "txt" + dynamicTextBox;
        TextBox tb = (TextBox)PlaceHolder.FindControl(OptionID);
        Response.Write(tb.Text);

        dynamicTextBox++;

--> Dieses ganze PostBack bringt mich nicht weiter. Ich weiß auch nicht, ob ich lieber Panel oder PlaceHolder nutzen soll?!

Kann doch eigentlich nicht so ein Akt sein, ne TextBox und nen Button in die nächste Zeile zu generieren, ohne das meine Daten flöten gehen und ich die vorher noch speichern muss. Die sollen nur bei der Endübertragung gespeichert werden und nicht vorher. Die anderen Komponenten knallen sonst in der Webanwendung. 😦

Gruß
BK

02.05.2011 - 14:11 Uhr

Hi MarsStein,

ja ich habe mir deinen Link angeguckt, aber ich versteh nicht, was ich da tun muss.

Ich habe keine Datenquelle.

Ich rufe ein Formular auf und da will ich ne Emailadresse eintragen. Dann will ich sagen --> weitere Emailadresse eintragen und will ne neue Zeile mit ner TextBox haben.

Gruß
BK

02.05.2011 - 13:51 Uhr

Hi,

ein Autopostback darf ich auf keinen Fall machen. Ich habe eine 3. Anbieterkomponete integriert die darauf einen Fehler wirft. Es muss erst alles ausgefüllt sein, bevor ein PostBack erfolgen darf. (Leider kann ich diese Komponente nicht beeinflußen...)

Das Klick Event funktioniert, wenn ich vorher in dem Textfeld eine Änderung eingetragen habe. Das ist nicht schlecht. Jetzt muss ich nur noch schaffen, dass neue Felder erzeugt werden.

Wie muss ich die Controls den per Code bauen? Ich habe bisher immer nur mit Grids gearbeitet und da mit .Add gearbeitet. Wie generier ich eine neue TextBox?

Gruß
BK

02.05.2011 - 13:14 Uhr

Hallo zusammen,

danke für die Tipps. Ich habe nen Panel hinzugefügt. Textfeld und Button rein und wenn ich auf das bntClick Event reagieren will, passiert aber leider rein gar nichts.

Was genau passiert, wenn ich den Button drücke? Das klick Event wird nicht angespochen.

Hat jmd. vll nen Code Beispiel?

txtEmail = Textfeld für Emailadresse
panEmail = Panel
btnAdd = Hinzufügen Button

Dieser Code macht nichts:


protected void btnAdd_Click(object sender, EventArgs e)
    {
        txtEmail.Text = "Test";
    }

Das Formular wird nicht einer Session gespeichert. Es wird nur gefüllt und wenn der Benutzer fertig ist, einaml gepostet und ist dann in der DB. (Dann ist der Benutzer allerdings bereits umgeleitet auf eine andere Seite, sodass dies nicht mehr sichtbar sein muss.) Es ist wirklich nur zum einmaligen anlegen.

Gruß
BK

02.05.2011 - 12:20 Uhr

Hallo zusammen,

ich brauche einen Denkanstoss. Ich habe ein Formular gebaut, auf dem ein ein Feld habe, wo eine Emailadresse bzw. mehrere Emailadressen eingegeben werden können.

Jetzt soll aber immer nur eine Emailadresse in das Feld eingetragen werden und mit einem klick auf "+" (weiterer Button) soll eine weitere Möglichkeit bestehen eine weitere Emailadresse einzufügen. Also eine neue Zeile soll eingefügt werden.

Kann mir jmd. sagen, wie ich das aufbauen kann?

Vielen Dank und Gruß
BK

07.01.2011 - 14:01 Uhr

Hey,

erstmal vielen, vielen Dank für die vielen Hinweise und Tipps. Ich werde jetzt erstmal ein paar Sachen ausprobieren und gucken, ob ich MVC, mit dem generischen Handler arbeiten werde oder was anderes mache.

Zuerst guck ich mir den Tipp von MrSparkle an. Habe dadurch einen Geistesblitz bekommen, dass ich zuerst ne Downloadseite einrichte und diese ggf. mit Parametern wieder zur Datenbank leiten kann und diese dann den Download erst zurückliefert. (Der Hinweis hat bei mir nen Denkfehler beseitigt, der mich die ganze Zeit blockiert hat!)

Ich bin allerdings für jeden weiteren Tipp und jedes weitere Beispiel dankbar. Ich bin in Webentwicklung nicht so fit um beurteilen zu können, was da das sinnvollste vorgehen ist.

Entwicklung ist VS2008 mit .NET 3.5 - Ich bin der letzte der halt neue technische Möglichkeiten ausschließen würde. Allerdings ist VS 2010 und .NET 4 momentan nicht freigegeben 😦

Gruß
BK

07.01.2011 - 11:59 Uhr

Das klingt nicht schlecht, aber ich weiß nicht, ob ich das machen kann.

Der temporäre Linkname soll frei wählbar sein. Deswegen die Speicherung des Originalordnernamens und des Fakeordnernamens in der Datenbank. Es ist durchaus denkbar, dass ich den Link einmal reaktivieren muss, da jmd nicht in der Lage war, den Download im Zeitfenster von 24 Std. zu erfüllen.

Also die Herausforderung ist folgende:

Ich sende nur den kompletten Link:
http://meineInternetseite/fdssdfjkfsdhn/DateiXY.zip

Dann kommt bzw. soll der berühmte "Öffnen/Speichern/Abbrechen" Dialog kommen.

Aber wo bzw wie muss ich den Code einbauen, dass er in Wirklichkeit http://meineInternetseite/daten/DateiXY.zip diesen Aufruf macht?

Der Benutzer soll es ja nicht sehen.
Muss ich irgendeine Seite dazwischenschalten, die das für mich handlet?

Bitte ein wenig Nachsicht. Ich entwickel normalerweise Windows nicht Web...

Gruß
BK

07.01.2011 - 11:31 Uhr

Hallo zusammen,

ich möchte folgendes Szenario abbilden. Ich möchte eine Datei sagen wir unter http://meineInternetseite/daten/DateiXY.zip ablegen.

Ich möchte aber nicht, dass der Benutzer diesen Link bekommt, sondern ich möchte ihm einen Link in der Form senden. http://meineInternetseite/fdssdfjkfsdhn/DateiXY.zip

Der Sinn dahinter soll sein, dass der Wert zwischen DateiXY.zip und meineInternetseite ein generierter Wert ist, der einen Gültigkeitszeitraum bekommt und dann nicht mehr funktioniert. Ich möchte die Datei ggf. in dem Verzeichnis behalten, aber ich will nicht, dass der Benutzer nach 24 Std. mehr Zugriff auf diese Datei bekommt. Ich möchte auch nicht, dass er den korrekten Pfad kennt, da ich vll noch andere Dateien in diesem Verzeichnis habe, die der Benutzer gar nicht sehen soll.

Kann mir jemand sagen, wie ich das aufbauen kann?

Ich habe mir das so vorgestellt.

Tabelle in Datenbank:
ID, Datei, URL, OriginalVerzeichnis, RandomValue, Aktiv

z.B.
1, DateiXY.zip, http://meineInternetseite/, daten, fdssdfjkfsdhn, true

Ist das so möglich? Was muss ich machen, damit wenn der Benutzer http://meineInternetseite/fdssdfjkfsdhn/DateiXY.zip eingibt auch einen Download bekommt?

Ich hoffe, dass es einigermaßen verständlich erklärt ist, was ich machen will....

Vielen Dank und lieben Gruß
BK

18.11.2010 - 11:24 Uhr

Hallo zusammen,

ich will eine Anwendung bauen, bei der ich an bestimmte Leute einen Link versenden kann, wo diese dann Daten hochladen können.

Alternativ will ich einen Link versenden, wo Leute genau nur eine Datei runterladen können.

Also ein File-Austauschsystem sozusagen. Allerdings darf nur ich intern diese Links generieren und versenden. Die Funktionen für Up- und Download ist unproblematisch und funktionieren eigentlich auch schon.

Aber ich weiß nicht, wie es schaffe einen temporären Link zu generieren, der auch nur über einen definierten Zeitraum ungültig sein soll. Ich werde den wohl irgendwie mit TimeStamp oder so in eine DB schreiben müssen?!

Meine Frage ist, wie bau ich den Link auf, damit dieser auch erreichbar wird. Kann mir hierzu jmd. nen Tutorial oder ne Anleitung geben? Meine Anwendung muss ja irgendwie wissen, --> Okay, der Link ist gültig, da ist eine Datei XY bzw. da darf jetzt mal jmd was hochladen und z.B. 24 Std später muss die Anwendung wissen, ne dieser Link existiert nicht.

Ich hoffe, dass Ihr mein Problem versteht und mir dabei helfen könnt.

Vielen Dank schonmal und einen freundlichen Gruß
BK

26.07.2010 - 16:57 Uhr

Hallo zusammen,

ich habe folgendes Problem:

Ich habe einen "Autohändler/-hof" und der sucht sich "VW" in der Dropdownliste aus.

Ich bekomme 2 Listen zurück per Views zurück.

  1. Liste = Alle Automodelle die VW besitzt
  2. Liste = Alle Automodelle die von VW auf dem Hof stehen

Jetzt kommt in die Listbox:
Polo, Golf, Passat, Fox .... usw.
Polo und Golf hat er auf dem Hof stehen, deswegen sollen diese direkt markiert sein. Für das hinzufügen und abwählen wäre es klasse, wenn der Händler direkt mit einem normalen klick, Modelle hinzufügen oder abwählen könnte, ohne die STRG Taste drücken zu müssen. (Kann ich den Tastendruck für eine Liste "simulieren"?)


//Hier bekomme ich alle Modelle zurück
List<DAL.Entities.Modelle> lstModelle = helper.GetAllModellsByCarLabel(int.Parse(dpropdwnCarLabel.SelectedItem.Value.ToString()));
            this.lstModl.Items.Clear();
            foreach (DAL.Entities.Modelle mo in lstModelle)
            {
                this.lstModl.Items.Add(new ListItem(mo.ModellName.ToString(), mo.ModellID.ToString()));
            }

//Hier bekomme ich alle Modelle zurück die aufm Hof stehen
List<DAL.Entities.Modelle> lstModellOnHof = helper.GetModellIDsByCarLabelIDundHofID(int.Parse(dpropdwnCarLabel.SelectedItem.Value.ToString())), 2);
            foreach (DAL.Entities.Modelle mo2 in lstModelle)
            {      
                //Das ist es nicht... ?! Hier hänge ich gerade
                //--> this.lstModl.SelectedIndex = int.Parse(mo2.ForderungsartID.ToString());
            }

Wäre spitze, wenn mir jemand sagt, wie ich den Multiselect hier setzten kann und ich im 2.ten Schritt die "STRG Taste" simulieren kann.

Vielen Dank für eure Unterstützung.
BK

29.06.2010 - 13:50 Uhr

Vielen Dank! Das hat mir sehr geholfen.
Ja, es muss so lauten:

node["Nr"] != null 

Dann funktioniert es auch. 😃

29.06.2010 - 11:11 Uhr

Hallo zusammen,

ich habe ein XML, welches ich in einer forech-Schleife mit Leben füllen möchte. Jetzt ist es so, dass ich leider nicht immer die eine Datenstruktur habe.

Der Datensatz muss nicht immer komplett gefüllt sein. z.B.:


<Datensatz>
  <Nr>1</Nr> 
  <Anrede>Herr</Anrede> 
  <Name1>Test</Name1> 
  <Name2>User</Name2> 
  <Datum>30.12.2010</Datum> 
</Datensatz>
  
<Datensatz>
  <Nr>2</Nr> 
  <Anrede>Firma</Anrede>  
  <Name2>Hola GmbH</Name2>  
</Datensatz>

<Datensatz>  
  <Name1>Test</Name1> 
  <Name2>User</Name2> 
  <Datum>30.12.2010</Datum> 
</Datensatz>


Ich will darauf wie folgt zugreifen (Aufruf in einer Funktion zum wegschreiben in eine Liste):


node["Nr"].InnerText.ToString() != null ? "Wert" : "",                                           node["Name1"].InnerText.ToString() != null ? "1" : "",
...

Da in der forech ale node[NAME] vorhanden sind läuft er beim testen in eine Exception NULL REFERENCE. (Ich dachte die iifabfrage macht woch nix.

28.05.2010 - 16:19 Uhr

Hallo zusammen,

ich habe folgende Situation:

Klassenprojekt - Funktionen
Klassenprojekt - Web Referenzen
Webapplikation - Projekt

Ich habe in meiner Funktionsklassenlibary die Klasse mit den Web Referenzen eingebunden und in meiner Web Anwendung habe ich die Klasse mit den Funktionen eingebunden.

Jetzt will ich eine Funktion aufrufen, die eine Web-Referenz benötigt und die Anwendung schmiert ab und sagt: Die Datei oder Assembly "WS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Kann mir jemand sagen, warum das nicht funktioniert?

DLL mit Web-Referenz ist in der DLL mit Funktionen als Verweis eingebunden. Kompilieren lässt sich auch alles und die Funktionen lassen sich auch durch die autovervollständigung runtertippen.

Danke und Gruß
BK

01.04.2010 - 14:20 Uhr

Thank you! That helps!

01.04.2010 - 10:35 Uhr

Hallo zusammen,

ich will meine Anwendung unmittelbar nach dem Aufruf in den Systemtray ablegen, sodass die Anwendung im Background ausgeführt wird.

Kann mir gerade jemand sagen, wie ich das machen muss? Meine Anwendung ist soweit fertig nur weiß ich nicht den Systemtray hinbekomme.

Ich würde gerne auch ein Systemtray Kontextmenü implementieren, aber damit hatte ich mich noch nicht befasst. (Also Rechtklick drauf und 2 Menüpunkte oder so)

Wäre für einen Ansatz sehr dankbar.

Viele Grüße
BK

11.11.2009 - 17:44 Uhr

You're the man! - Gott wie konnte ich das übersehen?!

Vielen Dank!!

LG
BK

11.11.2009 - 17:35 Uhr

Hallo,

also beides hilft mir gerade nicht weiter.
Mit CultureInfo.InvariantCulture.None verändert sich nichts.

Und naja, ich brauch den Wert halt geparst in der Variablen. Ich bekomm die als String und die muss in diese DateTime Variable. Wie ist mir eigentlich egal, aber was bei allen anderen Formaten funktioniert hat, schlägt hier fehl...

LG
BK

11.11.2009 - 17:05 Uhr

Hallo zusammen,

also ich muss eine konvertierung von String nach DateTime machen.
Da ich dies schon mehrfach so gemacht habe, wollte ich diese Funktion (lauffähig) bei mir erweitern:


            string dt="20070906160828";

            DateTime MyDateTime;
            MyDateTime = new DateTime();
            MyDateTime = DateTime.ParseExact(dt, "yyyyMMddHHmmss",null);

            MessageBox.Show("Guckst du hier: " + MyDateTime.ToString());

Die Erweiterung sieht so aus:


            string dt = "05/05/2009 14:29:46";

            DateTime MyDateTime;
            MyDateTime = new DateTime();
            MyDateTime = DateTime.ParseExact(dt, "dd/MM/yyyy HH:mm:ss", null);

            MessageBox.Show("Guckst du hier: " + MyDateTime.ToString());


Also in der richtigen Abfrage ist es per "CASE" gelöst. Allerdings ist ja hier eindeutig zu sehen, dass "dd/MM/yyyy HH:mm:ss" nur das "yyyyMMddHHmmss" ablöst.

Die erste Funktion läuft einwandfrei.
Die zweite Funktion löst eine Exception aus. (FormatException - Die Zeichenfolge wurde nicht als gültiges DateTime erkannt)

Meine Frage ist nun, wieso macht er es hier nicht. Also ich kann den Fehler hier gerade nicht erkennen.

Danke für eure Hilfe
BK

06.10.2009 - 14:36 Uhr

param1 = System.Math.Round(param1, 3, MidpointRounding.AwayFromZero); 

Funktioniert. - Wenn Datentyp == double

Ich hatte bei ein paar Versuchen auf float umgestellt und dann kommt hier auch wieder das falsche Ergebnis raus.

Hier mein Fehler:


float param1 = 38.05f;
            float param2 = 4;

            param1 = param1 / param2;
            param1 = (float)System.Math.Round(param1, 3, MidpointRounding.AwayFromZero);
            //param1 = double.Parse(param1.ToString("0.000"));
            MessageBox.Show("Der Wert lautet: " + param1.ToString());


Nochmals vielen Dank für die Erklärungen und die Hilfe!

Gruß
BK

06.10.2009 - 14:14 Uhr

Also ich muss kaufmännisch Runden, deswegen ist "Math.Round" in meinen Augen falsch.

Ab 5 muss aufgerundet werden, ab 6 bringt mir die Funktion nichts mehr.

MidPointRounding hat nicht funktioniert.

param1.ToString("0.000") liefert das gewünschte Resultat zurück! Herzlichen Dank!

Beste Grüße
BK

06.10.2009 - 13:50 Uhr

Hallo zusammen,

eigentlich kann es nicht so schwer sein. Ich will auf 3 Nachkommastellen runden.

Beispiel:


double param1 = 38.05;
double param2 = 4;

param1 = param1 / param2;
param1 = System.Math.Round(param1,3);
MessageBox.Show("Der Wert lautet: " + param1.ToString());

//38.05 / 4 = 9,5125 --> Zielwert: 9,513

Die Funktion liefert mir aber nur 9,512 zurück. Mit float fnktioniert es auch nicht.

Gruß
BK

11.11.2008 - 15:19 Uhr

Jupp habe ich.
Ich habe einen extra Ordner, indem alle benötigten DLLs liegen. Ich lösch den Verweis, ersetze die DLL im Ordner und setze den Verweis auf die neue DLL. (Just 4 Fun habe ich schon nen anderen Dateinamen versucht, mit gleichem Resultat.

11.11.2008 - 14:58 Uhr

Sowas habe ich mir auch schon gedacht. Allerdings ändert dies absolut nichts. Sowohl verweis erneuert, als auch Studio restartet -.-

11.11.2008 - 14:18 Uhr

...Vermutlich meinst du mit geht nicht, die Funktion wird von Intellisense nicht angezeigt, was schon viel konkreter ist als als "es passiert gar nichts".

herbivore){gray}

Richtig. Egal ob static class und static string funktion(string param,....) Im Versuch diese Funktion aufzurufen bekomm ich immer den gleichen Mist (s.o):

Das bekomm ich angezeigt:
BTSP.GetZielValue.Equals
BTSP.GetZielValue.ReferenceEquals

Egal was ich ändere, es interessiert das Studio überhaupt nicht.

Selbstverständlich ärgert es mich, wenn jmd. sagt das sind Basics. Das weiß ich selber. Ich häng aber gerade an diesem Mist und nicht an etwas anderem. Ich habe mir schon längst 10.000 Klassen und Aufrufe angeguckt und erkenne keinen Unterschied zu meinem Vorgehen.

11.11.2008 - 13:54 Uhr

Was ist daran unverständlich?
Wenn ich sage: "geht nicht", dann geht es nicht. Es passiert nichts, narda null komma nix.

Ich sagte ja nicht, dass ein Fehler kommt. Im übrigen gehört das auch nicht hier hin und hilft mir nicht weiter.

Was ist an meiner Frage unverständlich. Ich habe ne Klasse und will in der Klasse eine Funktion aufrufen, die ein paar Parameter bekommen soll und irgendwas zurückgeben soll. Ich will diese Klasse in ein Projekt einbinden und die Funktion aufrufen. Es scheitert daran, dass ich beim Aufruf der Klasse die Funktion (s.o) nicht ansprechen kann. Er zeigt sie mir einfach nicht an.

Wenn die Funktion einen fehler werfen würde, dann würde ich damit schon klar kommen. Ich will aber wissen, was ich tun muss, damit ich überhaupt die Funktion zu sehen bekomme.

11.11.2008 - 13:34 Uhr

zu 2. Entweder static benutzen oder eine Instanz der Klasse erzeugen.

Das sind aber alles Grundlagen, deswegen -> :rtfm: 🛈 📗

Ich weiß selbst, dass es nicht schwierig sein kann. Ich habe nur gerade keinen Ansatz und habe auf die schnelle nichts passendes gefunden. (Ich habe dieses Jahr vll 1 Monat C# geproggt den Rest nur VB)

Wäre nett wenn sich jmd. erbarmen könnte mir zu sagen, was ich tun muss um auf die Funktion zugreifen zu können.

Das geht nämlich nicht:


public static string GetZielByInfo(string Server, string Datenbank, string SucheWert, string Zielwert)

11.11.2008 - 13:01 Uhr

Hallo zusammen,

also irgendwie häng ich mich gerade an einem Thema auf, was eigentlich total simpel zu lösen sein sollte.

Ich habe eine Klasse programmiet:


using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace BTSP
{
    public class GetZielValue 
    {
        public string ZielInformation;
        
        public void GetZielByInfo(string Server, string Datenbank, string SucheWert, string Zielwert)
        {
             //CODE             
             //Zielinformation wird nach Variabel --> ZielInformation geschrieben
             return Zielinformation;
        }
     }
}

Also meine Probleme:

  1. Ich darf kein return machen, weil die Funktion "void" ist. Wenn ich aus void ein string mache, dann geht es. Kann ich die Funktion dann noch nutzen?

  2. Hier ist mein Problem: Ich kompiliere das Teil durch und eine DLL kommt raus. Diese DLL binde ich in ein anderes Projekt ein. Jetzt will ich auf meine Funktion zugreifen, aber der findet die nicht. Es wird immer nur BTSP.GetZielValue.Equals
    BTSP.GetZielValue.ReferenceEquals gefunden. Was muss ich machen, damit ich zu meiner Funktion komme?

Gruß
BK

14.10.2008 - 17:23 Uhr

Hallo zusammen,

leider kenn ich kein Board/Community, welche sich mit BizTalk auseinander setzt. Ich denke das sich hier vll, der Eine oder Andere schonmal mit BizTalk auseinander gesetzt hat.

Ich suche ein einfaches Tutorial, in dem ich eine XML File zu einer EDIFACT File konvertieren kann. Kann mir jmd. ein paar Tipps zum Thema liefern?

Vielen Dank und Gruß
BK

23.09.2008 - 15:00 Uhr

Hallo zusammen,

kennt jemand ein Forum/eine Community die sich ausschliesslich mit dem Thema BizTalk Sever befasst?

Ich muss damit in nächster Zeit einiges machen, brauche da aber ein paar gute Tutorials, da das gesamte Konstrukt nicht mal eben zu erlernen ist.

Danke und Gruß
BK

10.09.2008 - 15:39 Uhr

Thanks. @Peter der Link ist prima. Das spart mir gleich die suche nach Cookie Speicherung.

Greetz
BK

10.09.2008 - 10:27 Uhr

Yo, nochmal vielen Dank für deine Hilfe. Ich bin zwar noch immer nicht am Ziel, aber ich mach erst mal andere Baustellen zu, bevor ich mich da total bekloppt code und trotzdem nicht das passiert was ich will...

Deine Hinweise haben mir an anderen Stellen gut geholfen, wo ich wahrscheinlich auch hängen geblieben wäre. Doch diese Insert Seite scheint was ganz besonderes zu sein.

Für die Listenseiten funktioniert der von dir beschriebene Weg zu 100%.

10.09.2008 - 10:07 Uhr

Hallo zusammen,

ich habe da eine Frage. Und zwar wie muss ein ordentlicher Benutzerlogin gebaut sein? Ich nutze gerade eine etwas "simple" Methode zum testen die folgendermassen aufgebaut ist.

Es wird eine Login1_Authenticate aufgerufen. In dieser Funktion lese ich eine XML File aus, in der meine Serverangaben hinterlegt sind. Dann führe ich einen SQLCommand aus der mit den Benutzer zurückgeben soll, wo Benutzername = Login1.UserName und Passwort = Login1.Password

Wenn was zurück kommt, dann fülle ich einen SQLDataAdapter und schreibe in eine Session denn Benutzer Key.

Nicht schön, aber schnell runtergehackt. (Für ein internes Tool finde ich das durchaus auch in Ordnung.) Doch ich will das Ding ins Netz stellen und da kommt mir doch die Frage, wie es besser wäre...

Was muss ich denn alles machen, damit ich später den HttpContext.Current.User auslesen kann?

Ein kleines Sample wäre wirklich hilfreich...

Vielen Dank und Gruß
BK

09.09.2008 - 14:27 Uhr
  1. prüf ob eine session existiert
  2. prüf ob die session einen gesetzten key mit dem namen UserKey existiert. setzten solltest du diesen key beim login bevor du zur hauptseite redirectest

Ich kann die Session in ein normales Textfeld schreiben. Allerdings funktioniert es nicht, wenn ich versuche es in die Where Bedingung zu setzen.

Hast du dies jemals erfolgreich umgesetzt?

09.09.2008 - 11:19 Uhr

Hmmm, also ich mach folgendes:


<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="DetailsDataSource" DefaultMode="Insert"
                AutoGenerateInsertButton="True" OnItemCommand="DetailsView1_ItemCommand" OnItemInserted="DetailsView1_ItemInserted"
                CssClass="detailstable" FieldHeaderStyle-CssClass="bold" AutoGenerateRows="false">
            <Fields>
                <asp:DynamicField DataField="UserKey" Visible="true"/>
                <asp:DynamicField DataField="BVon"/>
                <asp:DynamicField DataField="BBis"/>
                <asp:DynamicField DataField="BUnternehmen" />    
            </Fields>
            </asp:DetailsView>

Dann die LinqSource:


<asp:LinqDataSource ID="DetailsDataSource" runat="server" EnableInsert="true">
                <WhereParameters>
                    <asp:SessionParameter DefaultValue="0" Name="UserKey" SessionField="UserKey" Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource>

Das führt zu keinem Ergebnis!

Dann habe ich dies probiert:


<asp:LinqDataSource ID="DetailsDataSource" runat="server"
                ContextTypeName="CDatenDataContext">
                <WhereParameters>
                    <asp:SessionParameter DefaultValue="0" Name="UserKey" SessionField="UserKey"
                        Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource> 

Führt auch zu keinem Ergebnis. Ich weder der UserKey wird angezeigt, noch lässt sich der "Einfügen" Button drücken.

Muss ich per Code vll noch expliziet eine Zuweisung ansteuern? Ich habe beim Login nämich dies gemacht:


this.Session["UserKey"] = UserKey ;

09.09.2008 - 10:33 Uhr

Hmm,
wenn ich das Versuche dann zerballert er mir irgendwie alles. Dann verliert er zum einen alles was ich ihm in der "Partials"-Klasse beigebracht habe. (Feldnamen, Validierungen (Wobei die Validierungen zZ auskommentiert sind) etc.

Der "Einfügen" Button lässt sich dann auch nicht mehr betätigen. Hier mal zum Vergleich der Kram den er daraus generiert.


<asp:DetailsView ID="DetailsView1" runat="server" 
                DataSourceID="DetailsDataSource" DefaultMode="Insert"
                AutoGenerateInsertButton="True" OnItemCommand="DetailsView1_ItemCommand" OnItemInserted="DetailsView1_ItemInserted"
                CssClass="detailstable" FieldHeaderStyle-CssClass="bold" 
                AutoGenerateRows="False">
                <FieldHeaderStyle CssClass="bold" />
                <Fields>
                    <asp:BoundField DataField="HR_ID" HeaderText="HR_ID" ReadOnly="True" 
                        SortExpression="HR_ID" />
                    <asp:BoundField DataField="IK_Key" HeaderText="IK_Key" ReadOnly="True" 
                        SortExpression="IK_Key" />
                    <asp:BoundField DataField="BerufVon" HeaderText="BerufVon" ReadOnly="True" 
                        SortExpression="BerufVon" />
                    <asp:BoundField DataField="BerufBis" HeaderText="BerufBis" ReadOnly="True" 
                        SortExpression="BerufBis" />
                    <asp:BoundField DataField="BerufUnternehmen" HeaderText="BerufUnternehmen" 
                        ReadOnly="True" SortExpression="BerufUnternehmen" />
                    <asp:BoundField DataField="BerufSchwerpunkt" HeaderText="BerufSchwerpunkt" 
                        ReadOnly="True" SortExpression="BerufSchwerpunkt" />
                </Fields>
            </asp:DetailsView>

            <asp:LinqDataSource ID="DetailsDataSource" runat="server" 
                ContextTypeName="CDatenDataContext"
                Select="new (UserKey, BVon, BBis, BUnternehmen)" 
                TableName="tbBerufe" Where="UserKey== @UserKey">
                <WhereParameters>
                    <asp:SessionParameter DefaultValue="0" Name="UserKey" SessionField="UserKey" 
                        Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource>

Ich hatte auch schon folgendes probiert:


UserKey = this.Session["UserKey"].ToString();
DetailsView1.Rows[0].Cells[1].Text = UserKey.ToString();

Der richtige Wert wird mir dann zwar angezeigt, allerdings wird er beim Post nicht in die Datenbank übernommen.

Hast du vll noch ne Idee?

08.09.2008 - 16:38 Uhr

Ja, das ist ein wenig verständlicher.

Jetzt mal ein ganz konkretes Beispiel. Ich habe die Session["UserKey"] gefüllt. Wie kann ich die in das Feld übertragen?

Es geht um die Zeile <asp:DynamicField DataField="UserKey" Visible="false"/>
Wie kann ich dort meinen Key, der in der Session gespeichert ist, reinsetzen?


<%@ Page Language="C#" MasterPageFile="~/Site.master" CodeFile="Insert.aspx.cs" Inherits="Insert" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true" />

    <h2>Neuen Eintrag zu Tabelle <%= table.DisplayName %> hinzufügen</h2>

    <asp:ScriptManagerProxy runat="server" ID="ScriptManagerProxy1" />

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
                HeaderText="Liste der Validierungsfehler" />
            <asp:DynamicValidator runat="server" ID="DetailsViewValidator" ControlToValidate="DetailsView1" Display="None" />

            <asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="DetailsDataSource" DefaultMode="Insert"
                AutoGenerateInsertButton="True" OnItemCommand="DetailsView1_ItemCommand" OnItemInserted="DetailsView1_ItemInserted"
                CssClass="detailstable" FieldHeaderStyle-CssClass="bold" AutoGenerateRows="false">
            <Fields>
<asp:DynamicField DataField="UserKey" Visible="false"/>                                                                                                               <asp:DynamicField DataField="Von"/>
                <asp:DynamicField DataField="Bis"/>
                <asp:DynamicField DataField="Aufgabe" /> 
            </Fields>
            </asp:DetailsView>
            <asp:LinqDataSource ID="DetailsDataSource" runat="server" EnableInsert="true">
            </asp:LinqDataSource>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

08.09.2008 - 11:31 Uhr

Hallo Raptor,

ich habe heute morgen einiges versucht, aber komme echt keinen Schritt weiter. Das ist total deprimierend. Ich habe mir die Casts zwar angeguckt, aber leider fehlen die Themen die ich benötige komplett.

Wenn ich jetzt eine Login.aspx anlege und der Benutzername und das Passwort stimmen. Muss ich dann den Post zur Site.master schicken???

Hast du vielleicht eine Beispiel Anwendung in der die "View" - Ebene bereits exisitert?

Die Bespielanwendungen die ich gefunden habe, beziehen sich nur auf die normale vorgehensweise. (Anwenung starten, tabelle aussuchen und fertig.)

05.09.2008 - 11:30 Uhr

Das klingt wie die Lösung die ich brauche. Hast du da vll nen Tutorial für mich, wie ich eine View Schicht einbauen kann?

04.09.2008 - 20:05 Uhr

Was für ne Rechteverwaltung? Ich habe ne Tabelle, mit Benutzerdaten und diese hat Verknüfungen zu anderen Tabellen in dennen dann Ihre Skills stehen. (Also z.B. welche Sportarten die machen und wie die "qualifizierungsstand" ist etc.)

Ich habe die DynamicData Seite nach Schritten des Tutorials aufgebaut. Also Linq erstellt und alle relevanten Tabellen ausgewählt und in das Schema gezogen. Jetzt werden dadurch alle Informationen dargestellt sich in den Tabellen befinden.

Jeder Benutzer hat halt nur das Recht seine eigenen Daten zu modifizieren. (Für die interne Auswertung gibt es eine Windows Anwendung die diese Daten auswertet, aber das ist für die Webseite bedeutungslos)

Aber trotzdem erstmal Danke für deine Tipps.