Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von typhos
Thema: Probleme mit TreeView
Am im Forum: Web-Technologien

Lass doch einfach mal das DataBind() weg...

Thema: Linkbutton dynamisch erzeugen
Am im Forum: Web-Technologien

Ja, danke für die Antworten. Durch Experimentieren habe ich das auch gerade herausgefunden. Ich habe die Button-Erzeugung ins Page_Init verschoben - nun geht es...

Schönes WE!

Thema: Linkbutton dynamisch erzeugen
Am im Forum: Web-Technologien

Oh, hier gibt es ja schon einen Thread mit dem gleichen Thema - hab ich wohl nicht ausreichend gesucht - SORRY, dass ich schon einen neuen Thread ersteltl hab!!


Ich habe genau das gleiche Problem. Kennt denn jemand eine Lösung?

Thema: Click-Event beim LinkButton greift nicht
Am im Forum: Web-Technologien

Hallo!

Ich erzeuge im Page_Load verschiedene LinkButtons und registriere die Methode lnkBtn_Click für jeden:

LinkButton lnkBtn = new LinkButton();
lnkBtn.Text = "Test";
lnkBtn.ID = "lnkBtnTest";
lnkBtn.Click += new EventHandler(lnkBtn_Click);

In der Methode lnkBtn_Click lass ich mir zum Test nur eine MessageBox anzeigen. Aber beim Klick auf einen LinkButton geht er nicht in die Methode. Ein Postback wird zwar ausgelöst, aber mehr auch nicht.

Hab ich irgendwas vergessen oder falsch gemacht?

Thema: TreeView Zustand merken
Am im Forum: Web-Technologien

Zitat
Original von Chris06
Laufen tut das sogar, nur geändert hat sich überhaupt nichts...

Was ich rausgefunden habe
(aus Artikel asp.net ajax (Atlas))
Das kann so wohl nicht funktionieren, da ich ja viele verschiedene aspx Sites habe.
Und jede dieser Sites läd die masterpage neu.
Ich meinte damit ja auch, dass Du nur eine aspx Seite haben solltest, in der dann nur der Inhalt (im UpdatePanel) geändert wird, wenn Du auf eine andere Seite springst, wird natürlich die Masterpage auch neu geladen...

Thema: TreeView Zustand merken
Am im Forum: Web-Technologien

Um einen Teil/nur den Inhalt der Seite neu zu laden, musst du AJAX/ATLAS verwenden. Das mache ich auch und es funktioniert super. Stichwort: UpdatePanel

Thema: ProgressBar um 90° drehen möglich?
Am im Forum: GUI: Windows-Forms

Wie gesagt, weiß ich es nicht genau. Aber der oben genannte Link ist nicht die einzige Progressbar bei codeproject. Ich hab dort auch schon eine gesehen, die noch viel mehr konnte (auch style-mäßig), aber die finde ich leider momentan nicht. Such dort mal ein bisschen...

Thema: Script-Engine (Compiler+Interpreter) entwickelt
Am im Forum: Projekte

Also ich habe mir die Seite "Syntax" bei dir angesehen. Und einige Sachen wie z.B. "var x as string" oder "if (var = xyz)" oder "for (i = 0 to 10)" erinnern weniger an Java/PHP/C#

Aber ich finde das Projekt trotzdem interessant, werde mir das sicher noch genauer ansehen!

Thema: ProgressBar um 90° drehen möglich?
Am im Forum: GUI: Windows-Forms

Weiß nicht, ob es mit der Standard-Progressbar geht, aber bei www.codeproject.com hab ich mal eine gesehen, die unter anderem auch das konnte.

edit:
Hier der Link: http://www.codeproject.com/cs/miscctrl/verticalprogressbar.asp

Thema: Script-Engine (Compiler+Interpreter) entwickelt
Am im Forum: Projekte

Interessantes Projekt!

Zitat
Die Syntax ist an Java/PHP/c# angelehnt.
Die Syntax sieht mir aber eher nach VB aus, oder irre ich mich

Thema: Seltsames Verhalten bei String.Compare
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe gerade meine Sortiermethode geändert. Und zwar habe ich das ebene.Sort() an das Ende der Methode verschoben:

private void SortiereEbene(List<MyTreeNode> ebene)
{
for (int i = 0; i < ebene.Count; ++i)
{
if (ebene[i].Children.Count > 1)
SortiereEbene(ebene[i].Children);
}
ebene.Sort();
}
Damit wird nun jede Ebene falsch herum sortiert.

String.Compare für sich genommen funktioniert natürlich richtig und wenn ich zwei Objekte vom Typ MyTreeNode vergleiche, bekomme ich auch das richtige Ergebnis.
Deshalb wundert es mich wirklich, dass das über die rekursive Methode oben nicht funktioniert.

Vorübergehend habe ich es so gelöst, dass ich das Ergebnis von MyTreeNode.CompareTo() einfach umkehre (-1 -> 1, 0 -> 0, 1 -> -1). Damit wird der Baum erstmal richtig dargestellt. Natürlich klappt das Vergleichen von zwei einzelnen MyTreeNode-Objekten nun nicht mehr richtig (umgekehrtes Ergebnis). Daher ist es für mich keine endgültige Lösung.

Weiß vielleicht jemand, warum die rekursive Methode Probleme macht?

Thema: Seltsames Verhalten bei String.Compare
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
ich habe mir mit Hilfe von List<> und einem eigenen Typ einen Baum gebastelt.
Der eigene Typ MyTreeNode ist wie folgt implementiert:

public class MyTreeNode
{
private MyTreeNode _parent = null;
private List<MyTreeNode> _children = new List<MyTreeNode>();
private string _name;

public MyTreeNode Parent
{
get { return _parent; }
set 
{ 
_parent = value;
if (value != null)
value.AppendChild(this);
}
}

public List<MyTreeNode> Children
{
get { return _children; }
set { _children = value; }
}

public string Name
{
get { return _name; }
set { _name = value; }
}

public void AppendChild(MyTreeNode newChild)
{
if (!_children.Contains(newChild))
_children.Add(newChild);
}

public int CompareTo(object treeNode)
{
if (treeNode == null)
return 1;
else
return String.Compare(((MyTreeNode)treeNode).Name, this.Name, StringComparison.CurrentCultureIgnoreCase);
}
}

So, nun fülle ich die Liste bzw. den Baum:

List<MyTreeNode> myTree = new List<MyTreeNode>();
MyTreeNode rootNode1 = new MyTreeNode();
rootNode1.Name = "2099";
myTree.Add(rootNode1);

MyTreeNode rootNode2 = new MyTreeNode();
rootNode1.Name = "2006";
myTree.Add(rootNode2);

Nach dieser Art und Weise baue ich mir folgenden Baum auf:
2099
----- Klasse 10
----- Klasse 06
---------- NH-KL-06-02
---------- NH-KL-06-01
----- Klasse 12
----- Klasse 11
---------- NH-KL-10-05
---------- NH-KL-10-02
2006
----- Klasse 04
----- Klasse 02
---------- NH-KL-02-07
---------- NH-KL-02-01
---------- NH-KL-02-02

So weit, so gut.
Nun möchte ich jede Ebene sortieren. Dafür gehe ich den Baum Ebene für Ebene durch und wende List<>.Sort() an, welche meine CompareTo()-Methode verwendet, also nach dem Namen sortiert.

Ich erwarte also das Ergebnis:
2006
----- Klasse 02
---------- NH-KL-02-01
---------- NH-KL-02-02
---------- NH-KL-02-07
----- Klasse 04
2099
----- Klasse 06
---------- NH-KL-06-01
---------- NH-KL-06-02
----- Klasse 10
----- Klasse 11
---------- NH-KL-10-02
---------- NH-KL-10-05
----- Klasse 12

Seltsamerweise erhalte ich aber das Folgende als Ergebnis:
2099
----- Klasse 12
----- Klasse 11
---------- NH-KL-10-02
---------- NH-KL-10-05
----- Klasse 10
----- Klasse 06
---------- NH-KL-06-01
---------- NH-KL-06-02
2006
----- Klasse 04
----- Klasse 02
---------- NH-KL-02-01
---------- NH-KL-02-02
---------- NH-KL-02-07

Das heißt also, dass nur die letzte (unterste) Ebene richtig sortiert wird, alle darüberliegenden genau falsch herum. Kann sich das jemand erklären?

Falls es von Interesse ist, hier noch meine Sortiermethode:

private void SortiereEbene(List<MyTreeNode> ebene)
{
ebene.Sort();
for (int i = 0; i < ebene.Count; ++i)
{
if (ebene[i].Children.Count > 1)
SortiereEbene(ebene[i].Children);
}
}

Sorry für den langen Beitrag!!

Thema: DLLImport - Problem
Am im Forum: Rund um die Programmierung

Hmm, auch wenn ich mir das schon fast gedacht habe, ist die Antwort nicht unbedingt die, die ich hören/lesen wollte X(
Gibt es vielleicht eine Möglichkeit, die DLL "anders" zu kompilieren bzw. zu konvertieren? Die DLL in C# neu zu erstellen wäre prinzipiell zwar möglich, aber ein riesiger (unerwünschter) Berg Arbeit

Thema: DLLImport - Problem
Am im Forum: Rund um die Programmierung

Hat denn wirklich niemand eine Idee, woran es liegen könnte? Ist die DLL fehlerhaft oder gar nicht zu gebrauchen oder kann der Fehler auch am Aufruf der Methode liegen?
Vielleicht noch ein paar Einzelheiten:
Die DLL, um die es geht, wurde mit Gupta/Centura frisch erstellt. Damit kenne ich mich zwar nicht aus, aber anscheinend werkelt beim Kompilieren auch irgendein C/C++ Compiler - zumindest stand da irgendetwas von "C++ Compiler".

Wenn ich die DLL im DependencyWalker öffne, wird mir die gewünschte Funktion auch in der "Export Function List" angezeigt. Weiterhin kenn ich die Parameter, die diese Funktion benötigt:

BOOL Funktion(HSTRING, BOOL, BOOL, LPHSTRING)

In meinem Projekt binde ich die Funktion so ein:

[DllImport("NAME.DLL")]
public static extern bool Funktion(string prm1, bool prm2, bool prm3, ref string prm4);

Beim Aufruf dieser Methode erhalte ich dann den besagten Fehler:
Zitat
HRESULT: 0x8007045A Eine Initialisierungsroutine ist fehlgeschlagen.

Wäre wirklich toll, wenn mir doch noch jemand helfen könnte.

Thema: PDF Druckfunktion
Am im Forum: Wünsche und Kritik

Das ist natürlich auch wieder wahr

Thema: PDF Druckfunktion
Am im Forum: Wünsche und Kritik

Zitat
Original von herbivore
Ansonsten bin ich eh der Meinung, dass Ausdrucken in den meisten Fällen einen Nachteil bedeutet.
  • Kein Copy&Paste mehr (z.B. für Codebeispiele)
  • Keine Suchfunktion mehr
  • gedruckt = toter Text
Aber das wäre bei PDF ja noch gegeben.

Thema: DLLImport - Problem
Am im Forum: Rund um die Programmierung

Hi,
ich habe die DLL nun mal mit DependencyWalker geöffnet und festgestellt, dass sie noch von zig anderen DLLs abhängig ist. Gut, also habe ich mir die anderen DLLs auch besorgt und in das bin-Verzeichnis kopiert.
Anscheinend wird nun alles gefunden. Allerdings bekomme ich nun einen anderen Fehler:

"Eine DLL-Initialisierungsroutine ist fehlgeschlagen"

Was bedeutet das jetzt? Ist mein Aufruf der Funktion falsch oder stimmt etwas anderes nicht?
Wenn ich die DLL nun mit DependencyWalker öffne, fehlt zumindest keine DLL mehr, aber er markiert die MPR.DLL rot und gibt mir folgende Meldung:
"Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module."
Die MPR.DLL ist doch eine Systemdatei, richtig? Die muss doch also in Ordnung sein

Thema: DLLImport - Problem
Am im Forum: Rund um die Programmierung

Hi,
ich versuche eine unmanaged DLL per DLLImport einzubinden. Beim Aufruf der eingebundenen Methode erhalte ich aber eine DllNotFoundException "Das angegebene Modul kann nicht gefunden werden".
Die DLL liegt aber im gleichen Verzeichnis wie die DLLs des Projekts (also im bin-Verzeichnis).
Kann er wirklich die DLL nicht finden oder liegt das an was anderem?

Vielen Dank schon mal!

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Hmm, ja

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Zitat
was man so gesehen auch als "designfehler" schon fast beschreiben könnte

Findest Du? Ich hab aber keine Ahnung, wie ich das anders lösen könnte?

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Zitat
dadurch das du den webservice an 2 orten wieder eingebunden hast gibt es 2x den typ wieder, die funktionieren aber nicht miteinander
Ganz genau. Ich habe es jetzt so gemacht ,wie von Dir vorgeschlagen. Ich habe noch eine "Zwischenschicht" (also eine eigene Assembly) eingebaut, die den Webservice referenziert und in die Webseite und die Controls-DLL eingebunden wurde.
Damit funktioniert es, wie gewollt.

Ich dachte halt, dass es einen einfachen/schnellen Weg gibt, das ohne zusätzliche Schicht oder "komplizierte Erweiterungen" funktioniert.

Jedenfalls nochmal vielen Dank für Deine Unterstützung!

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Zitat
Original von sheitman
ja ich hab das ausprobiert, bei mir geht das auch... probier du es mal aus. du hast ja die probleme

Hab ich ja, aber - wie gesagt - funktioniert es bei mir nicht.

Also...
Ich habe meiner Webseite einen Webverweis auf den Webservice hinzugefügt. Dadurch wird eine WSDL-Datei erzeugt. Die drei angelegten Datei (*.wsdl, *.disco, *.discomap) liegen im Verzeichnis "App_WebReferences/MeinWebservice".
Im Webservice selbst habe ich eine Methode, die den Typ "ExterneLib.MeinTyp" zurückgibt. Wenn ich diese Methode aufrufe, bekomme ich natürlich nicht den Typ "ExterneLib.MeinTyp", sondern "MeinWebservice.MeinTyp", da dieser ja in der WSDL angelegt wurde.

So...
Nun habe ich ein weiteres Projekt, eine ClassLibrary (DLL) mit meinen Controls. Alle Klassen in dieser Lib sind im Namespace "MeineControls". Nun füge ich hier ebenfalls einen Webverweis auf den Webservice hinzu. Dann wird hier z.B. die schon erwähnt reference.cs und der ganze andere Kram angelegt. Dem Webverweis weise ich nun einen Namespace wie z.B. "Webservice" zu.
Nun habe ich aber nicht den Typ "ExterneLib.MeinTyp" oder - was auch noch passabel wäre - den Typ "MeinWebservice.MeinTyp", sondern ich habe hier nur den Typ "MeineControls.Webservice.MeinTyp".
Und ich kann halt nicht MeineControls.Webservice.MeinTyp in MeinWebservice.MeinTyp oder ExterneLib.MeinTyp konvertieren.

Also wie hast Du es denn gemacht, dass es bei Dir funktioniert 8o

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Hmm, hast Du das mal ausprobiert? Ich glaube nicht, dass das funktioniert (oder ich bin wirklich zu blöd dazu).
In meinem Control (das ist also eine eigenständige DLL!) habe ich doch den Namespace "MeinWebservice" gar nicht zur Verfügung. Dort ist ja nur "MeineControls.Webservice" bekannt.
Und beim Hinzufügen eines Webverweises wird doch eine neue WSDL erzeugt. Oder meinst Du, ich sollte die WSDL aus der Webseite in mein Controls-Projekt kopieren? Geht das denn? Die würde doch jedesmal beim Kompilieren überschrieben werden

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Ja, schon klar. Aber es sind ja trotzdem unterschiedliche Typen, wenn ich den Webservice einmal per Webreferenz in die Webseite einbinde und einmal in mein Control, oder nicht?
In meiner Webseite liegt die Webreferenz auf den Webservice im Verzeichnis "App_WebReferences/Webservice", damit hat mein Typ den vollen Namen "Webservice.MeinTyp".
In meinem Control füge ich den Webservice ebenfalls über eine Webreferenz hinzu und ich packe den - sagen wir einfach mal - auch in einen Ordner "Webservice". So, hier hat mein Typ aber den vollen Namen "MeinControlNameSpace.Webservice.MeinTyp".
Und damit sind die Typen (trotz gleichen Inhalts) doch unterschiedlich.

Oder meinst Du das evtl. anders?

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Danke für Deine Mühe!
Ja, das Auslagern der Webservice-Aufrufe in eine eigene DLL wäre auch noch möglich - stimmt! Daran habe ich noch gar nicht gedacht.

Zitat
problem ist halt das er nur aus daten besteht, und keine methoden mehr enthält...
Methoden brauche ich auch nicht, nur die Daten.

Mal sehen, vielleicht lagere ich die Webservice-Aufrufe wirklich in eine DLL aus... oder ich übertrage auch nur noch DataTables oder so was...

Vielen Dank nochmal für Deine Mühe und Hilfe!

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Diese SchemaImporterExtension habe ich mir auch schon angesehen und schon ausprobiert. Aber irgendwie will es nicht.
Evtl. hapert's auch nur daran, dass die ImpoerterExtesion in den GAC muss - das möchte ich nicht.

Aber mal von einer anderen Seite betrachtet: Ich muss ja nicht unbedingt den "richtigen" Typ haben, es würde mir genügen, wenn ich den serialisierten (und dann deserialisierten) Typ, der in der WSDL-Datei angelegt wird, auch in mein Control (DropDownList) bekomme. Kann ich vielleicht die WSDL-Datei der Webseite irgendwie in das Projekt mit den Controls "importieren"? Also so, dass Control und Webseite die gleiche Webservice-Referenz/WSDL-Datei nutzen?

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Nee, ich benutze auch 2.0. Und wie ich schon schrieb funktioniert das ja auch, wie Du es gemacht hast. Aber eben nur bei Assemblies (also Konsolenanwendung, DLL etc.). Wenn Du jetzt aber in VS mal eine neue Webseite anlegst und dort einen Webverweis auf den Webservice hinzufügst, wird dort keine reference.cs angelegt, sondern nur 3 Dateien (wie ich oben schon geschrieben hab). Und daher kann ich das so leider nicht lösen.

Probier's mal aus...

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Na ja, wenn man zu einer Webseite einen Webverweis hinzufügt, wird halt keine reference.cs erzeugt. Es werden dort nur 3 Dateien angelegt (*.disco, *.discomap, *.wsdl) - mehr nicht.
Anders bei richtigen Assemblies, dort wird unter anderem immer eine reference.cs angelegt, in der man schön herumpfuschen kann

Bin schon den ganzen Tag am Suchen und Probieren, aber bisher noch keine Lösung ;(

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Erstmal vielen Dank für Deinen Einsatz!

Leider bekomme ich es aber einfach nicht hin. Den Artikel bei codeproject habe ich auch vorher schon gelesen und das funktioniert auch. Aber leider nur bei "richtigen" Anwendungen. Bei Webreferenzen in Webseiten gibt es ja keine reference.cs, sondern nur eine WSDL-Datei, also hilft mir das dort nicht weiter.

Die anderen Links habe ich auch alle durchforstet, aber entweder bin ich zu blöd, das dort genannte umzusetzen oder.... ich weiß auch nicht. Ich krieg es einfach nicht hin X(

Thema: Webservice in eigenem Control verwenden
Am im Forum: Web-Technologien

Hi und Danke für die Antwort!

Ich habe auch schon versucht, den Typ in eine eigene Assembly auszulagern und habe diese in der webseite sowie im Control referenziert. Das Problem bleibt aber bestehen.
Denn der Typ wird ja in die wsdl-Datei eingetragen und die Methode vom Webservice liefert auf der Webseite den Typ MeinWebservice.Anrede, obwohl ich im Webservice die Methode so deklariert habe, dass der Typ ExtraAssemblyNameSpace.Anrede zurückgegeben wird. Der Typ wird einfach als complexType in die WSDL-Datei eingetragen und auf der Webseite wird nur der benutzt. Also habe ich wieder das Problem beim Befüllen der ComboBox:

MeinWebservice.Anrede kann nicht in ExtraAssemblyNameSpace.Anrede konvertiert werden

Ich bin am Verzweifeln...