Laden...
Avatar #avatar-2711.jpg
1nf1n1ty myCSharp.de - Member
Software Engineer Dabei seit 02.07.2007 286 Beiträge
Benutzerbeschreibung

Forenbeiträge von 1nf1n1ty Ingesamt 286 Beiträge

01.09.2008 - 14:44 Uhr

Hallo zusammen,

ich habe eine Frage bezüglich Page.Cache, die mir das MSDN nicht beantworten konnte (oder ich habe es nicht verstanden bzw. überlesen). Page.Cache bietet ja die Möglichkeit Daten auf dem Seiten zwischenzuspeichern. Normalerweise ist es ja so, dass jeder Benutzer ein Seitenobjekt erzeugt. Wenn man nun Page.Cache verwendet, werden die Daten dann für jedes Objekt separat gespeichert?

Denn eine Website die Page.Cache verwendet wäre ja wenn es nicht so wäre nicht MultiUser fähig, da sich die Daten die gespeichert werden, ja permanent überlagern würden.

Vielen Dank!

Grüße Marco

€: siehe bei: http://www.elsniwiki.de/index.php/Main/WebPartEntwicklung
unter Punkt 5. Da wird darauf hingewiesen, dass ein Webpart keine Session hat, man deswegen Page.Cache verwenden soll. Das macht mich stuzig. :x

01.09.2008 - 12:13 Uhr

Hallo zusammen,

Jepp. Die Parallel Extensions hauen nur mit dem 3.5er Framework hin.

Hmm... schade. Das 2.0 Framework ist ja bei Windows XP schon Standard. Ich wollte nur sehr ungern, dass man für ein kleines Tool extra noch ein .NET Framework installieren muss.

Grüße

Marco

01.09.2008 - 11:55 Uhr

Hallo zusammen,

diese Parallel.Foreach Geschichte klingt wirklich sehr interessant. Ich vermute aber mal, dass diese nicht mit .NET 2.0 funktioniert, sehe ich das richtig?

Grüße

Marco

01.09.2008 - 09:59 Uhr

Hallo zusammen,

das sind schonmal 2 recht gute Ansätze 🙂 Vielen Dank schonmal, das werde ich mir auf jeden Fall mal anschauen. Noch eine Sache: Sollte ich dem Benutzer besser die Wahl lassen wieviele Threads er möchte oder wäre es besser dies automatisch zu erkennen (CPU Analyse). Gibts vom .NET Framework da vielleicht eine Methode die erkennt wieviele CPUs der Anwender zur Verfügung hat?

Grüße Marco

01.09.2008 - 09:36 Uhr

Hallo zusammen,

ich habe vor mich in nächster Zeit näher mit Multithreading außeinander zusetzen und hab dabei auch schon ein Problem gefunden, welches man sich anschauen könnte. Stellt euch vor ihr habt eine Kollektion mit 1000 Bitmaps und möchtest diese möglichst schnell in JPEGs umwandeln. Dazu würde ich zuerst eine Liste mit Dateien erstellen.

Nun zum eigentlichen Problem: Wenn man nun eine Multicore CPU hat möchte man natürlich auch die vorhandene Rechenleistung nutzen. Dafür müsste ich ja dann einen Threadpool erstellen, der mir eine Anzahl an Threads erzeugt. Bei einem Quad-Core möchte ich dabei nur 4 Threads haben (wohlgemerkt 4 arbeitende, mir ist klar das ich noch einen für den GUI und vielleicht noch einen für irgendwelche kleineren Aufgaben brauchen kann). Wie würde man jedoch erkennen welches Bild bereits komprimiert ist? Es könnte ja sein die Bilder haben unterschiedliche Größen, d.h. die Bearbeitungszeit ist unterschiedlich. Es soll aber möglichst effizient sein. Demnach wäre die Lösung das der erste Thread Bild 1, 5, 9 ... der zweite 2,6,10 etc. komprimiert zwar eine Lösung, jedoch keine optimale.

Eine andere Idee die ich hatte wäre entweder ein Counter, der das als nächstes zu komprimierende Bild angibt und immer erhöht wird, sobald ein Thread sich so eines aus der Liste geholt hat oder zu jedem Bild zusätzlich eine Variable speichern, die angibt ob das Bild bereits geladen und komprimiert wurde. Dabei stellt sich für mich die Frage, ob sich die einzelnen Threads dabei möglicherweise in die Quere kommen können mit den Variablen, sprich: 2 Threads versuchen das gleiche Bild zu laden/komprimieren. Kann sowas passieren und wenn ja, wie würde man dem vorbeugen?

Der letzte Gedanke dazu: Die Bilder müssen ja nach der Komprimierung gespeichert werden. Dies geschieht in der Regel auf die Festplatte. Allerdings ist es nicht so effizient, wenn 4 Threads nach der Komprimierung gleichzeitig auf die Platte schreiben, da zum Einen der Zugriff verlangsamt wird, weil der Lesekopf dauernd hin und her springt und zum Anderen die Daten dann möglicherweise fragmentiert werden.
Meine Idee: Ein zusätzlicher Thread, der darauf wartet, dass ein anderer ihn anstösst und ihm sagt er soll das Bild nun auf die Festplatte schreiben.

Ich würde gerne eure Meinung und Erfahrungen zu diesem Thema hören und ggf. Verbesserungsvorschläge meiner Idee.

Grüße

Marco

29.08.2008 - 12:38 Uhr

Bei mir steht: "blblblblblblp"

Ist n insider aus nem Flashmovie und muss man nich unbedingt verstehen xD

29.08.2008 - 12:28 Uhr

Hallo Myar,

öffne die mal ein Quickwatch und schau dir die Zeile, in der die Exception auftritt man. Füge dem Quickwatch dann die Objekte/Variablen, die du an der Stelle verwendest hinzu. Dann wirst du denke ich ja sehen, welche Variable nicht instanziert ist. Vielleicht hast du sie auch einfach an einer falschen Stelle definiert.

Grüße

Marco

28.08.2008 - 10:14 Uhr

Hallo aequitas,

du könntest rekursiv nach dem Control suchen, jedoch würde das etwas mehr Rechenzeit kosten.

Grüße

Marco

27.08.2008 - 15:15 Uhr

BA ist so ne Sache. Da schwankt das Ansehen gewaltig, am besten ist das der BA in Baden-Württemberg.

Da kann ich mich wohl glücklich schätzen 😉

27.08.2008 - 14:26 Uhr

Hallo ChristianDaniel,

das gleiche ist mir am Anfang auch mal passiert und da du es nicht erwähnt hattest dachte ich, ich frage einfach mal nach 😉 Freut mich, dass es jetzt läuft.

Grüße

Marco

27.08.2008 - 13:56 Uhr

Hallo ChristianDaniel,

hast du mal geschaut(per Debugger) ob in dem DataTable überhaupt Daten vorhanden sind? Und warum erstellst du eine extra DataView? Man könnte doch direkt das DataTable oder DataSet-Objekt nehmen (wobei wie beschrieben das DataTable etwas schneller wäre).

Grüße Marco

27.08.2008 - 10:25 Uhr

Hallo zusammen,

Wenn du Projekte vorweisen kannst, würde ich das schon als eine Art Berufserfahrung
bezeichnen.

Die Projekte zuhause waren eher kleinerer Natur und dienten für mich rein zum Lernen oder mir Tools zu bauen um kleinere Aufgaben für mich zu lösen, demnach nix großes. Das einzige was man sonst noch so als Projekt bezeichnen kann ist die Anfertigung von zwei Studienarbeiten, in denen es darum ging eine Windows Mobile Anwendung zu entwickeln, die auf einen Web Service zugreift. Dies habe ich in den Bewerbungen auch erwähnt.

27.08.2008 - 09:46 Uhr

Hallo zusammen,

also der Abschluss ist Der Diplomingenieur Informationstechnik (BA), wobei ich jedoch der letzte bin, der diesen Abschluss noch bekommt, da ja alles auf Bachelor und Master ungestellt wird. Ich denke dieser Abschluss liegt etwa gleich mit dem an der FH und etwas unter dem an der Uni.

Während des Studiums hatte ich immer wechselnde Phasen in denen ich der der Berufsakademie theoretische Inhalte vermittelt bekam, als auch praktische, in denen ich in der Firma Tätigkeiten nachging. Der Wechsel war immer etwa alle Monate, d.h. ich habe in den 3 Jahren etwa 1 1/2 Jahre in der Firma verbracht und dort gearbeitet. Aber auch in den Theoriephasen habe ich programmiert und ebenfalls schon einige Zeit zuhause, was jedoch nicht als Berufserfahrung anzurechnen ist (oder irre ich mich)?

Grüße

Marco

27.08.2008 - 00:43 Uhr

Hallo zusammen,

ich bin dabei mich um eine Arbeitsstelle als .NET Entwickler zu bewerben und habe auch schon einige Stellen herausgesucht. Ziemlich oft lese ich dabei unter den Angaben die man mit schicken soll eine Gehaltsvorstellung.
Ich zögere bei dieser Angabe jedoch etwas, weil ich Angst habe zu unverschämt zu werden, weil ich nicht wirklich weiss wieviel man verdient. Deswegen bitte ich euch um eure Meinung/Erfahrung/Hilfe

Stellt euch vor ihr habt gerade ein Berufsakademiestudium abgeschlossen und in den Praxisphasen in Unternehmen Erfahrungen gesammelt und bewerbt euch. (Also wäre laut dem Wissenstand dann Juniorentwickler, sehe ich das richtig??).

€: Was mir noch eingefallen ist, anscheinend ist das ja auch abhängig von bestimmten Gegebenheiten deswegen paar weitere Details: Raum Niedersachen, ledig, keine Kinder

Vielen Dank für eure Hilfe.

Grüße

Marco

26.08.2008 - 14:28 Uhr

Hallo zusammen,

es gibt ja einige Tools, mit denen mal DLLs oder EXEcuteables, die mit .NET geschrieben sind wieder zurückübersetzen bzw. einsehen kann (z.T. sogar mit Variablennamen aber ohne Kommentare), wie z.B. .NET Reflector.
Wenn ich jetzt aber ein Programm veröffentliche und nicht möchte, dass man diese Möglichkeit hat, wie kann ich den Quellcode dann dagegen schützen?

Grüße

Marco

26.08.2008 - 12:11 Uhr

Bitte statt ArrayList die entsprechende generische Liste List<T> verwenden.

Hallo,

auch ne gute Idee 😉 Auch diese hat eine solche Funktion unter List<T>.Items.Clear();

Grüße

Marco

26.08.2008 - 11:43 Uhr

Hallo Myar,

es könnte vielleicht daran liegen, dass du die Items zur Liste bei jedem Postback hinzufügst. Versuche mal die Liste jedes mal zu löschen mit ArrayList.Clear() bevor du sie erstellst.

Grüße

Marco

25.08.2008 - 15:44 Uhr

Hallo zusammen,

ich habe ein Treeview auf einer Seite und möchte in einer bestimmten Situation das SelectedNodeChanged Event feuern. Dieses soll dann quasi so sein, als wenn der Benutzer den obersten Knoten ("ROOT" heißt der bei mir) gedrückt hat. Nun frage ich mich, wie ich das machen könnte, da die SelectedNode Eigenschaft des Treeviews nur gelesen aber nicht gesetzt werden kann.

Über Treeview.SelectedNodeChanged(myTreeview, new EventArgs) gehts ja nicht, da in e anscheinend irgendwelche Werte benötigt werden, die ich nicht festgelegt habe.

Vorschläge?

Vielen Dank und Grüße

Marco

25.08.2008 - 15:38 Uhr

Hallo zusammen,

schade das es so nicht funktioniert. Dann werde ich wohl einen extra Task oder einen Windowsservice dafür anlegen oder sowas in der Art. Die Geschichte mit Thread.Sleep wäre zwar eine Idee und sowas ähnliches hatte ich auch mal überlegt, jedoch schien mir das nicht so eine optimale Lösung zu sein. Hat derjenige der den Vorschlag gemacht hat ja auch selber geschrieben. Vielen Dank trotzdem.

Grüße

Marco

25.08.2008 - 12:04 Uhr

Hallo Ploetzi,

ich möchte nur 1x pro Tag (z.B. morgens um 1.00) überprüfen ob das Datum eines Datensatzes eingetreten ist und daraufhin ein Feld in der Datenbank ändern, mehr nicht. Dabei kann es sich jedoch um viele Datensätze handeln.

Grüße

Marco

25.08.2008 - 11:43 Uhr

Hallo zusammen,

ist es möglich in einem Web Service eine Art Timerjob zu implementieren, mit dem man zu einer bestimmten Uhrzeit eine Methode aufruft, die dann z.B. Daten in der Datenbank ändert? Wenn ja wo finde ich Informationen darüber bzw. wie funktioniert das?

Grüße

Marco

13.08.2008 - 22:04 Uhr

Hallo,

Vielen Dank schonmal 😉 schau ich mir gleich an. Werde heute wohl eine Nachtschicht einlegen um das noch hinzubekommen. Das mit der Gruppenüberprüfung habe ich bereits gelöst mit Hilfe von WindowsPricipals.

Grüße Marco

13.08.2008 - 19:02 Uhr

Hallo Zusammen,

ich habe leider nur wenig/keine Ahnung von Active Directory aber brauche gearde dringend etwas. Ich möchte alle Benutzer einer bestimmten Gruppe haben. Ich brauche dann:

  • den Domainnamen
  • loginname
  • mail

auf den ersten zwei soll dan sowas werden: domain\username.
Wo kann ich auf die schnelle nachschauen wie man sowas macht?

Noch was eingefallen: Ich brauch ebenfalls noch eine Prüfung ob der gerade eingeloggte Benutzer in einer bestimmten AD-Gruppe ist.

Vielen Dank und Grüße Marco

13.08.2008 - 17:56 Uhr

Zu 1.: CredentialCache.DefaultCredentials

Zu 2.: siehe http://fabioscagliola.spaces.live.com/blog/cns

13.08.2008 - 15:19 Uhr

Hallo Zusammen,

ich habe einen WebService, der mit einem Zertifikat verschlüsselt wurde. Der WebService wird von einem Webpart für SharePoint aufgerufen. Nun tauchen dabei 2 Probleme auf.

  1. Wie kann ich WebService.Credentials mit den Benutzerdaten aus dem AD füllen?

  2. Ich hab es testweise mal Hartcodiert implementiert über Service.Credentials = new NetworkCredential("user", "pass", "domain"). Dabei bekomme ich die folgende Fehlermeldung:


The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

Inner Exception:

The remote certificate is invalid according to the validation procedure

Aufrufen kann ich den Service, wenn ich es über den Browser mache. Es kommt lediglich eine Zertifikatsfehlermeldung des IEs, weil das Zertifikat selbst erstellt ist.

Weiss jemand Rat?

Vielen Dank und Grüße

12.08.2008 - 15:49 Uhr

-.- genau das wars, daran hab ich nicht mehr gedacht. Vielen Dank

12.08.2008 - 14:38 Uhr

Hallo zusammen,

in einem UpdatePanel habe ich eine DropDownListe erstellt. Diese bekommt eine ID und eine Event (SelectedIndexChanged) im OnInit zugewiesen. Nun möchte ich etwas ändern, wenn ich in der Liste etwas auswähle, jedoch passiert nix, das Event wird nicht ausgelöst. Wenn ich nun aber etwas geändert habe und auf einen Button drücke, wird das Event der Dropdownliste ausgeführt und danach erst das des Buttons.

Funktionieren DropDownListen etwa nich mit Ajax oder habe ich irgendetwas falsch gemacht?



DropDownList ddl_design;

protected override void OnInit(EventArgs e) {
    ddl_design = CreateDesignDDL();
}

private DropDownList CreateDesignDDL() {
	DropDownList ddl = new DropDownList();
	ddl.ID = "ddl_design";
	//Erstelle Listitem anhand von Daten;
	ddl.Items.Add(li);
        SelectedIndexChanged+=new EventHandler(ddl_SelectedIndexChanged);
	return ddl;
}

protected void ddl_SelectedIndexChanged(object sender, EventArgs e) {
        //verändere und/oder blende aus
        up.Update();
}

Vielen Dank und Grüße Marco

12.08.2008 - 06:18 Uhr

Ein gutes tool ist z.b Aequitas

*HUST*

Entschuldige bitte, aber ich finde Aequitas keinesweg so gut wie du. Es kann Configs checken. Es gibt allerdings auch die Möglichkeit verbotene Befehle mit Hilfe von PAKs zu verstecken. Diese Technik ist lange bekannt, Aequitas setzt diese nicht um, bzw. prüft diese nicht.

Aequitas macht soweit ich das sehe eine Prozessliste und führt entsprechend wie erwähnt CRC bzw. MD5 Checks durch, um nach bekannten Cheats zu suchen. Das ist wie bereits erwähnt eine unbefriedigende Art derartige Programme zu erkennen. Cheatcoder wie Organner gehen bei sowas direkt auf Treiberebene und laden ihre Cheats direkt ins System.

Aequitas macht Screenshots, verwendet dabei aber bestimmte Libarys. Anscheinend ist es den Cheats jedoch möglich zu erkennen, wenn eine dieser Screenshotfunktionen aufgerufen wird. In dem Falle wird der Cheat für kurze Zeit deaktiviert -> Screenshots sehen sauber aus. Das funktioniert teilweise selbst bei den Publiccheats, demnach ist diese Funktion in dieser Implementierung unbrauchbar.

Theoretisch kann außerdem jeder Cheat Aequitassicher sein, der

  • Aequitas nicht in irgendeiner weise blockt (sowas wird erkannt).
  • dessen CRCs/MD5s nicht bekannt sind.

D.h. wer will kann einen billigen VAC 2 Aimbot nehmen (Sourcecodes gibts ja genug), etwas daran verändern, compilieren und hat einen "sicheren" Cheat, der unter Aequitas funktioniert. Natürlich lässt sich ein Aimbot durch das genaue betrachten der Demos erkennen.

Also alles in allem find ichs irgendwie ziemlich schlecht.

11.08.2008 - 12:48 Uhr

Ok, dann wäre da wohl Assembler die Sprache der Wahl. Hat jemand mal damit gearbeitet und kennt sehr einsteigerfreundliche Tutorials für x86? Ich war bisher nur in C aktiv, Assembler würde mich aber dennoch mal interessieren.

11.08.2008 - 12:28 Uhr

Hallo JAck30lena,

Nochma zum Thema Reverse Engineering: Welche Möglichkeiten habe ich da? Wie weit kann ich da zurückgehen? Jedes Programm erzeugt ja in irgendeiner Weise Maschinencode, der in ASM rückübersetzt werden kann. Gibt es aber auch eine Möglichkeit den Code in die Ursprungssprache zu übersetzen? Bei .NET fällt mir z.B. der .NET Reflector ein, den man dafür benutzen kann die Codes einzusehen, sofern diese nicht durch Mechanismen gesperrt werden.

Gibt es Vergleichbares/Ähnliches für andere Sprachen?

€: Sollte kein Doppelpost werden, hab mich nur in zitieren/editieren geirrt :x

11.08.2008 - 12:22 Uhr

Hallo JAck30lena,

also ein wächterprogramm.
edit: ich würde das mit ansi-c oder gar assembler machen.

Kannst du das Begründen? Ich mein C ist halt schon sehr systemnah aber ASM kann ich nich richtig verstehen, weil die Sprache ist ja sehr weit unten angesiedelt. Warum wäre es vorteilhafter soweit runter zugehen? Wären da Vorteile gegenüber C?

11.08.2008 - 11:48 Uhr

Hallo zusammen,

wie ich es mir schon fast gedacht habe ist dieses Thema sehr gewagt. Wie jedoch auch vorher erwähnt möchte ich hier niemandem auf den Schlips treten oder so. Hintergrund dieser Diskusion ist folgender:
Ich möchte z.B. gerne ein Programm überwachen welches gestartet wird im Hinblick darauf ob Fremdapplikationen zu Laufzeit des zu überwachenden Programms irgendetwas ändern, was nicht gestattet ist. Ein sehr gutes Beispiel hierfür wären z.B. Onlinecheats für den Multiplayer. Da wird ja teilweise etwas am Spiel verändert um Sicherheitsmechanismen auszuhebeln und weiter etwas an der Grafikdarstellung verändert um irgendwelche Vorteile gegenüber anderen Spielern zu haben. Nun gibt es ja auch eine Reihe von Tools gegen solche Cheatcoder, allerdings sind diese teilweise eben mit VB geschrieben (Habe auch schon welche mit .NET 2.0 gesehen). Ich frage mich da natürlich schon ob diese wirklich geeignete Sprachen sind um solche Dinge festzustellen, da sich die Coder solcher Programme ja teilweise richtig fiese Tricks ausdenken um ein solches System zu überlisten. VB und .NET scheint mir irgendwie nicht Systemnah genug um sowas zu bewerkstelligen. Es könnte jedoch auch sein, dass ich mich Irre, belehrt mich dann bitte eines besseren.

Was ich suche sind eben Argumente dafür bzw. dagegen.

Grüße Marco

07.08.2008 - 12:27 Uhr

Hallo zusammen,

ich habe schon sehr oft Diskussionen über C++ und VB miterlebt. Die einen Sagen warum soll ich mich mit Pointern etc. quälen, wenn ich es mit VB viel einfacher haben kann und VB mir ja auch OpCode erzeugt. Die anderen sagen VB ist nich systemnah (nur mit bestimmten Mitteln) und langsam. Ich habe nicht die Absicht hier Visual Basicprogrammierer irgendwie runterzuputzen, denn auch diese Sprache hat irgendwo ihre Darseinsberechtigung. Es interessieren mich lediglich viele Dinge an dieser Sprache und ihrer Eigenarten.

Was ich so an Nachteilen gefunden habe:

  • Benutzt für jedes Programm COM-Objekte.
  • Viel Overhead, kein echter Maschinencode (Warum? Weil abhängig von Libary/Interpreter?)
  • Kein OOP. (Objekt-orientierte Programmierung) - keine Verebung - keine Polymorphie - und keine Exceptions etc.
  • Keine systemnahe Programmierung (nur durch API Importierung). Beschränkt auf Funktionen des Interpreters.
  • Kein strukturierter Code. (meiner Meinung nach eher Geschmackssache als Nachteil)
  • Braucht Runtime-Packages. Keine eigenständige Anwendung.
  • Schreibfehler werden direkt als neue Variable(Variant) angesehn.
  • VB-Code ist langsam.
  • Keine Typsicherheit.
  • Treiberprogrammierung kaum möglich (wer schreibt sowas auch...)

Was für die Sprache spricht ist natürlich der leichte Einstieg mit dem man sehr schnell seine Erfolge sieht oder schnell mal eben einen Prototypen zusammenbauen kann. Außerdem wird im Office Umfeld ja ebenso VB eingesetzt.

Was mich interessieren würde wie das mit dem Zugriff auf Speicher, andere Anwendungen usw. in VB gehandhabt wird. In C++ hab ich ja quasi die volle Kontrolle und wenn ich weiss was ich tue, kann ich alles mögliche damit machen. Ich kann an Adressen springen, dinge verändern etc.

Hat man diese Möglichkeiten in VB auch? Wie ist es z.B. Wenn ich feststellen will ob an einer bestimmten Adresse etwas geändert hat oder einen Wert hineinschreiben will? Wie sieht es aus mit grafischen Schnittstellen wie z.B. OpenGL? Hat man auf sowas vollen Zugriff um irgendwas zu machen?

Visual Basic ist ja von einer Libary abhängig. D.h. für jede Funktion von VB muss es irgendwie eine Interpretation der Methoden in dieser Libary geben (korrigiert mich, wenn ich da falsch liege). Wenn ich jetzt z.B. eine Methode aufrufe (Screenshot machen beispielsweise) müsste es doch theoretisch einfach möglich sein den Aufruf einer solchen Methode mit einem anderen Programm zu erkennen (vielleicht sogar mittels WMI?) oder nicht? Das andere Programm könnte dabei in beliebiger Sprache geschrieben sein, die systemnah interagiert wie z.B. C++. Wie würde sowas funktionieren und könnte man sowas in VB z.B. mitbekommen?

Und wie seht ihr das ganze mit VB?

Grüße Marco

07.08.2008 - 11:02 Uhr

Hallo serial,

stimmt, das wäre eine Möglichkeit, es handelt sich hier allerdings um eine Tabelle in einem Webpart. D.h. entweder ich muss die CSS Klasse auf die Masterpage von Sharepoint setzen oder irgendwie direkt in die Assembly einbinden, wobei ich beide Lösungen irgendwie nicht so attraktiv finde. Es sei denn gibt es eine Möglichkeit CSS Files irgendwie nachzuladen (per Code vielleicht?) auf einer Seite. Dann wäre das was anderes und für den Benutzer nicht so umständlich und solche Geschichten wie Themes bezüglich des aussehens denkbar.

Gibts sonst vielleicht noch eine andere Lösung dafür?

Grüße Marco

07.08.2008 - 10:41 Uhr

Hallo zusammen,

ich habe folgendes Problem:
Ich baue mit einem Table-Element mit unterschiedlichen Zeilen zusammen die Informationen beinhalten. Am Ende der Tabelle befindet sich eine Leerzeile, danach eine Zeile mit Buttons. Nun möchte ich über der Leerzeile eine weitere Leerzeile, sowie eine Tabellenzeile mit Controls (Textboxen und Buttons) einfügen. Diese soll aber erst sichtbar sein, wenn der Benutzer einen bestimmten Button gedrückt hat, also quasi bei Bedarf eingeblendet werden. Meine Frage ist nun wie ich das ganze verstecken kann, so das auch die Events funktionieren.

Ich habe bisher versucht die besagten Zeilen unsichtbar zu machen (visible=false). Nach dem einblenden funktionieren dann aber die Buttons nicht mehr richtig, weil die Events anscheinend zu spät registriert werden.

Wie erreiche ich das gewollte und wie muss ich es dann einbauen, damit es funktioniert?

Vielen Dank und Grüße Marco

06.08.2008 - 13:36 Uhr

Hallo beate007,

willkommen im Forum! 🙂 Packe deinen Quellcode mal bitte in die Csharp Tags, dann werden sich mehr Leute die Mühe machen dir zu helfen und das ganze wird etwas lesbarer.

Hast du das ganze mal durch den Debugger gejagt und nachgeschaut? Was steht in dr.FieldCount drin?

Grüße Marco

05.08.2008 - 16:51 Uhr

Hallo zusammen,

Entschuldigung für diesen Thread, ich habe mal wieder geträumt.

Also für die Leute die das gleiche Problem haben: Wenn man ein GridView in einem UpdatePanel hat sollte man nach Möglichkeit:

  • die DataSource Ändern
  • dann das ganze binden
  • dann das Panel aktualisieren

und nicht anfangen an den Controls selber herumzueditieren, da sich dadurch anscheinend etwas an der Struktur ändert und irgendwelche Informationen verloren gehen, die für Ajax wichtig sind.

Grüße Marco

05.08.2008 - 16:10 Uhr

Hallo zusammen,

ich habe ein GridView in einem UpdatePanel und ändere teilweise die Daten in diesem. Dabei kommt es vor, dass das GridView unter bestimmten vorraussetzungen einen Fullpostback macht, was es aber nicht tun soll. Ich werde versuchen es zu erläutern:

Auf der Seite gibt es neben dem Gridview eine Textbox und einen Button. Wenn ich in die Textbox etwas reinschreibe und auf den Button drücke wird der Inhalt in die Liste gesetzt. Das Gridview wird dabei aktualisiert, ohne Fullpostback (was auch so sein soll).
Nun hat das Gridview eine ButtonColumn in der ein DeleteButton zu sehen ist. Wenn ich auf diesen klicke soll der Eintrag verschwinden. Das geschieht auch, jedoch passiert hierbei ein Fullpostback (was nicht so sein soll). Wenn ich allerdings daraufhin ein 2tes Item lösche, dann funktioniert es wie es soll.

Wenn es funktioniert wie es soll und ich erneut etwas einfüge mit der Textbox und dem Button gibt es wieder keinen Fullpostback, allerdings dann wieder wenn ich erneut das erste mal Delete drücke.

Nun weiss ich nicht so recht woran das liegen könnte und wie man das abstellen kann. Der Scriptmanager ist auf der Seite vorhanden. Das Update geschieht über <UpdatePanel>.Update.

Hat jemand mal das gleiche Problem gehabt oder weiss evtl. woran das liegen könnte?

Vielen Dank für die Hilfe und Grüße Marco

04.08.2008 - 14:09 Uhr

ID wird bei Events benötigt, das stimmt.
Zudem solltest du <Control>.LoadControl(<Pfad>) benutzen, um UserControls zu laden.
Gruss Peter

Hallo Peter,

ist das LoadControl wirklich wichtig? Ich habe nämlich keine statischen UserControls mit ASCX Files, sondern nur mehrere Klassen, die ich dann von System.Web.UI.UserControl abgeleitet habe, da diese von mir dynamisch zusammengestellt und in mein Webpart gepackt werden. So habe ich einzelne Logikteile in verschiedene Klassen ausgelagert. Ich dachte das wäre ganz klug, weil die Klasse vorher sehr gross war. Außerdem sind die Controls recht gut zu handhaben. Gäbe/Gibt es irgendwelche Probleme/Nachteile wenn ich die so wie beschrieben hinzufüge?

Grüße Marco

04.08.2008 - 10:03 Uhr

Hallo zusammen,

also:

Ich habe mein UserControl folgendermaßen geladen:


this.Controls.Add(new MyUc());

Das Problem ist, dass er anscheinend die Events nicht findet, wenn das Control keine eindeutige ID hat. Erst nach dem ersten Postback findet er das UserControl und die Events und kann diese feuern.

Lösung ist also:


MyUC uc = new MyUc();
uc.ID = "myucID";
this.Controls.Add(uc);

Hoffe ich konnte damit jemandem helfen, der das gleiche Problem hat.

Grüße Marco

31.07.2008 - 16:16 Uhr

Hallo wl9,

soviel anders dürfte das eigentlich nicht sein. Ich selber habe aber auch noch nie ITemplate verwendet.

Zu Webparts kann ich dir jedoch noch eine Seite empfehlen: http://weblogs.mysharepoint.de/fabianm/

Stehen super sachen rund um SharePoint und Webparts drin 😉

Ich selbst baue gerade eines mit AJAX zusammen. Macht eigentlich riesig Spaß, aber so Webparts haben auch ihre Eigenarten. Naja ^^

Grüße Marco

31.07.2008 - 15:27 Uhr

Hallo codeRocker,

der Fehler 500 kann alles mögliche sein. Ich habe ihn bei meinem Web Service bisher nur erhalten, wenn irgendwas an meiner Methode nicht in Ordnung war. Vielleicht ist selbiges bei dir der Fall.

Grüße Marco

€:Versuch mal den Service direkt über den Browser aufzurufen und die Methode zu benutzen, was passiert? Hast du vielleicht einen Debugger zu hand, mit dem du mal nachschauen kannst was er macht?

31.07.2008 - 14:57 Uhr

Hallo zusammen,

also ich habe hier ein Webpart gebaut mit UpdatePanel. In dieses Panel über ich abhängig von einem Menü ein UserControl ein, welches dann geladen werden soll. Das funktioniert soweit auch. Allerdings habe ich in den UCs auch Events definiert. Diese greifen aber irgendwie erst, wenn ich das zweite mal darauf klicke. Ich lade also die Seite und das Control. Drücke z.B. auf Add und nix passiert. Danach drücke ich wieder Add und es geht. Danach geht die Seite genau wie sie soll.

Jetzt frage ich mich woran das liegen könnte. Die Events werden zusammen mit den Controls im Page_Init erstellt.

Im Webpart allerdings werden die Controls erst in der CreateChildControls() hinzugefügt. Könnte es deswegen vielleicht diese Probleme geben? Hab ich vielleicht grundsätzlich irgendwie einen Denkfehler eingebaut oder gibt es andere Gründe warum es nicht so funktioniert wie es soll?

Vielen Dank für die Hilfe.

Grüße Marco

€: Im OnInit definiere ich nun alles, was ich brauche. Wenn ich das erste mal ein Event auslösen will (button_Click) passiert nichts. Er springt nicht in das Event rein. Erst beim zweiten Mal. Jemand eine Idee?

31.07.2008 - 14:51 Uhr

Hallo wl9,

schau dir mal die entsprechenden Klassen dazu an:
Gridview, TemplateField, BoundField, ItemTemplate, etc.

Ich nehme an du möchtest dazu ein Webpart bauen, wenn du sagst, wo du so ein Gridview einbindest, richtig?


GridView gv = new GridView();
gv.ID = "gv";
BoundField bf = new BoundField();
bf.HeaderText = headerText;
bf.DataField = dataField;
bf.NullDisplayText = "-";
gv.Columns.Add(bf);
gv.DataSource=(MeineDataSourceQuelle); //z.b. DataSet
gv.DataBind();

So hättest du z.b. Eine Spalte im GridView, dass an ein gebundenes Feld darstellt.

Grüße Marco

30.07.2008 - 16:39 Uhr

Hallo zusammen,

also mit C# etc. hat man ja die Möglichkeit Windowsprogramme zu erstellen. Diese setzen aber alle voraus, dass man das .NET Framework auf dem Rechner installiert hat. Was ist aber, wenn man z.B. nur kleine Tools schreibt, die man vielleicht auch mal so auf einen fremden Rechner mitnehmen und ausführen will? Wenn dieser .NET nicht installiert hat, sieht man da wohl alt aus 😠

Deshalb frage ich mich gerade ob es möglich ist trotz das man mit .NET programmiert hat eine Standalone zu erstellen, wo alles drin ist, was man für das Ausführen der Datei benötigt. Auch wenn diese dabei etwas anwachsen würde.

Vielen Dank!

Grüße Marco

27.07.2008 - 21:07 Uhr

Getestet hab ich es, leider ohne Erfolg 🙁

Noch irgendwelche Ideen?

25.07.2008 - 11:54 Uhr

Hallo,

Firewall ist extern, Malwarescanner gerade nicht am laufen und an AntiVir wird es wohl auch nicht liegen. Hab aber einige Windows Services, die nicht benötigt werden, deaktiviert. Mal schauen ob ich darüber etwas erreichen kann.

Grüße Marco

25.07.2008 - 11:49 Uhr

Hallo,

werde ich machen sobald ich zuhause bin, kann aber dauern, da ich über das Wochenende weg bin. Meinst du denn es könnte daran liegen oder gibt es vielleicht sonst irgendwelche Abhängigkeiten, die diesen Fehler verursachen können? (deaktivierte Windows Services, fehlende Assemblys, etc.)

Grüße Marco

25.07.2008 - 11:39 Uhr

Hallo,

öhm kleine Korrektur: Ich bin gerade am Laptop und der hat noch SP2, zuhause hab ich SP3 am Desktop. Ich dachte hätte hier auch schon das Update gefahren 😉

Grüße Marco

25.07.2008 - 11:34 Uhr

Hallo,

Windows XP Prof. SP3
.NET 2.0 ist installiert

Grüße Marco