Laden...
Avatar #avatar-2678.jpg
Tomot myCSharp.de - Member
Junior-Softwaredeveloper C# und ASP.Net Düsseldorf Dabei seit 21.12.2007 691 Beiträge
Benutzerbeschreibung

Forenbeiträge von Tomot Ingesamt 691 Beiträge

28.04.2010 - 19:20 Uhr

Hallo, schau dir mal http://stackoverflow.com/questions/2022040/asp-net-use-ascx-as-a-layout-template an.

Dennoch sollte dir bewusst sein, das du über reines JavaScript keine serverseitigen Controls erstellen kannst. Dafür geht das ganze schon in Richtung AJAX, Updatepanel z.B. Eine Möglichkeit wäre um dein Control an UpdatePanel zu machen, und dann clientseitig ein neues Rendering der UpdatePanels zu veranlassen.

26.04.2010 - 01:23 Uhr

Ich wollte in meinem Projekt nicht immer alles vorgekaut bekommen also habe ich mich entschlossen keine GridView und DetailsView zu nehmen. Mir gefiel einfach der direkte Zugriff (Insert, Update, Delete) auf die Tabellen nicht und wollte den Zugriff daher über Stored Procedures regeln und mit deren Hilfe die Daten organisieren. Der InternetUser hat dann auch nur Zugriff auf diese Stored Procedures und eben nicht direkt auf die Tabellen... Der InternetUser hat dann auch nur Zugriff auf diese Stored Procedures und eben nicht direkt auf die Tabellen.

Welchen Vorteil erhoffst du dir bitte durch Stored Procedures? Was gefällt dir an der Datenbinding nicht? Du musst ja nicht direkt irgendwie SQLReader Objekte benutzen.

Du kannst problemlos eine ObjectDataSource verwenden, die entsprechende Select, Insert, Update und Delete Methoden (samt Logik) verwendet. Wenn du eine 3-tier-Architektur willst, dann kapselt diese Klasse die entsprechende Aufrufe zu einer entsprechende Klasse im DAL. (D.h. die Logik mappt auf klare Insert/Update/Deletes)

... allerdings ist das meine erste wirkliche Seite und ich hab kaum Erfahrung damit, weil nie gebraucht. Wieso willst du das Verhalten eines Grids mit einer Tabelle und LinkButtons nachbauen. Das GridView wird schon sehr gut autogeneriert. Das Nachzubauen halte in den seltensten Fällen für sinnvoll.

Wenn du doch willst, dann verfolge das von MarsStein gesagte. Beachte jedoch, da die Controls serverseitig erstellst, das du erst nach den entsprechenden EventHandlern neu bindest, da ansonsten die Events "verschluckt" werden.

09.04.2010 - 11:39 Uhr

Und wenn du ihn kaput installierst können die auch ein Backup

Beachte das dir dafür Supportzeit berechnet werden kann. In dem Falle ist es in der Regel günstiger sich einfach einen neuen zu bestellen und den alten zu kündigen. Bei den 1 Monats Vertragslaufzeiten ist das kein Problem.

02.04.2010 - 11:21 Uhr

möglicherweise ein problem/ablauf der session?

Bau mal in der global.asax bei Application_OnError und bei Session_OnEnd Logging Mechanismen ein.

Ich hatte mal den seltsamen Fall, das ich beim Zugriff auf einen Ordner eine Exception (mangels Zugriffsrechte) erhielt, der Application_OnError auslöste, jedoch nicht von der Applikation anders angemerkt wurde (CustomErrors, HealthMonitoring etc.)

02.04.2010 - 11:14 Uhr

Um dir helfen zu können, musst du mehr Informationen zukommen lassen.

Was heißt "dann ist in der Kundenansicht der Produktname sofort geändert"? Wie sieht die Datenbinding aus? Definiere sofort? Überprüfst du clientseitig nach Änderungen?

06.03.2010 - 21:00 Uhr

Logitech Internet 350 Keyboard. Schlichtes Design, benutze ich nun an allen meinen Rechnern und zum Entwickeln sowohl privat als auch auf der Arbeit.

Schön ist, das der 6er Block mit Einfügen, Pos1 etc frei liegt.

Bei meinem Computerladen um die Ecke kostet das Dingen gerade mal 10€, also hab ich in der Regel zwischen 1 bis 5 Tastaturen auf Reserve liegen (Nicht das die kaputt geht, aber ich tausche in regelmäßigen Abständen aus. (esse vorm pc usw 😉 )

Logitech Internet 350 OEM Tastatur USB 105 Tasten MS W98 D Schwarz

26.02.2010 - 19:38 Uhr

Mit deiner Vermutung liegst du wahrscheinlich richtig. Der Begriff TrustLevel sollte dich bei deinen Recherchen weiterbringen.

23.02.2010 - 13:09 Uhr

Probiers mal hiermit

Text='<%# Bind("Titel") %>' 
22.02.2010 - 17:11 Uhr

Das Problem liegt wie DonMaxo schon sagte daran, das der ApplicationPool sich nach einer besagten Zeit schlafen legt. Setzt dort den entsprechenden Wert auf 0, dann legt sich der ApplicationPool nicht mehr schlafen.

Edit:
IIS6: Eigenschaften des AppPools -> Reiter Leistung -> Haken bei "Arbeitsprozess im Leerlauf herunterfahren "entfernen

IIS 7.5: Entsprechenden Wert auf 0 setzen

21.02.2010 - 15:23 Uhr

Wie realisierst du das ausloggen?

So?

   Session.Abandon();
   System.Web.Security.FormsAuthentication.RedirectToLoginPage();
21.02.2010 - 11:29 Uhr

Auf welcher Seite ist denn dein Login? Wenn er auf der gleichen Seite ist, dann ist das von dir beschriebene Verhalten korrekt.

18.02.2010 - 15:28 Uhr

Hmm, ich bin mir leider nicht sicher, was du mit statisch meinst?

       [WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public static String[] GetStreets(string prefixText, int count)
        {
            StreetServiceClient client = new StreetServiceClient();
            String[] lst = client.GetStreetNameAsList(prefixText);
            return lst;
        }
13.02.2010 - 16:20 Uhr

Ja das geht.

I) Beim Aufbau der Seite musst du dem entsprechenden Anzeigecontrol die Text Property setzen.

II) Zum Speichern hast du dann irgendwo einen Button (oder ähnliches) in dessen Eventhandler zu eine Methode zum Speichern aufrufst. Diese Methode muss so implementiert sein, das sie die Daten dort speichert, wo sie in I) geladen werden.

05.02.2010 - 17:32 Uhr

Hallo

Über eine Webseite müssen bestimmte Bedingungen erfüllt werden, die dann zu einem bestimmten Zeitpunkt vom WebSerive überprüft werden sollen. Falls die Bedingungen nicht erfüllt wurden, soll eine Email versendet werden.

"Zu einem bestimmten Zeitpunkt" ist mit Hilfe eines Webservices nicht ohne weiteres möglich. Entweder ist dein Webservice sehr stark frequentiert und du baust bei jeder Abfrage entsprechende Automatismen ein, oder du lässt ständig auf deinen Webservice zugreifen.

Daher würde ich für dieses Einsatzszenario von einem Webservice abraten.

Verwende stattdessen einen Windowsservice, denn der läuft dauerhaft und damit ist es auch dauerhaft möglich, nach irgendwelchen Bedingungen zu prüfen. Entsprechende Kommunikation über Schnittstellen (irgendwie müssen die Daten ja zwischen Anwendung und Service transportiert werden) wäre eine Datenbank oder ein Webservice, je nachdem was sich für welche Zielplattform anbietet.

Edit: Nun les ich grad

Zu einem Zeitpunkt x soll immer geprüft werden, ob alle Eingaben gemacht wurden. . Wenn du z.b. nur einmal am Tag irgendwas machen willst, dann bietet sich wahrhaftig der Windows Taskplaner an.

05.02.2010 - 17:26 Uhr

Hi. Schau mal ob es so klappt:

Text='<%$ Resources:ControlResource, MyLocalizedString %> + " : " + <%$ Resources:ControlResource, MyLocalizedString2 %>'

19.01.2010 - 19:38 Uhr

Ich hab Mitte letzten Monats auch noch zugeschlagen bei dem Jubiläumangebot. Binnen zwei Werktage stand mir der Server funktionstüchtig bereit.

13.01.2010 - 22:24 Uhr

Wenn ich im Rootfolder einen Ordner anlege, der z.b. "upload" heißt, kann ich dort problemlos Dateien hochladen. Auf dem Zielrechner kannst du ja dann einen virtuellen Ordner namens "upload" verstellen, der woanders hinzeigt.

Alternativ kannst du für deine lokalen Testzwecke doch einfach einen Pfad im Projektordner nehmen? (Bei jedem Startup löscht du dann halt den Inhalt, falls gewünschnt)

13.01.2010 - 22:20 Uhr

Meines Wissens nach ist das von dir gewünschte Verhalten aber erreichbar. Wie bindest du denn die Daten?

Abonniere testweise mal das OnRowDataBound Event und schaue wenn e.Row.RowType == RowType.DataRow (oder genau das halt heißt), was für ein DataItem an die jeweilige Row gebunden ist. Wenn dort werte drin sind, dann scheint es Probleme mit dem BoundField zu geben. In diesem Falle verwende einfach ein TemplateField.

13.01.2010 - 22:14 Uhr

Doch du verwendest AutoGenerateColumns. True ist der Defaultwert.
Zudem siehst du ja, das du in <Columns> nur CommandFields hast. Die anderen Werte werden autogeneriert.

In der MSDN steht sogar die Erklärung dazu.

Automatisch generierte gebundene Spaltenfelder werden nicht zur Columns-Auflistung hinzugefügt. http://msdn.microsoft.com/de-de/library/system.web.ui.webcontrols.gridview.autogeneratecolumns.aspx

12.01.2010 - 22:50 Uhr

Schau dir dochmal mit dem Quickwatch an, ob die entsprechende Property noch doch irgendwie bereit gestellt wird.

Ansonsten kannst du das OnRowDataBound Event abonnieren und müsstest bei e.Row.RowType == RowType.Header entsprechende Veränderungen machen können.

z = dt.Columns[1].ColumnName;
...
Ich frage mich nur, was da der Unterschied zu
z = GridView1.Columns[0].HeaderText;

Beim ersten veränderst du in der DataTable den Namen der Spalten. Beim anderen den Text beim Grid nachdem du diese DataTable daran gebunden hast.

Vermutlich hast du die AutoGenerateColumns Property auf true, d.h. die Spalten und deren Headertexte werden automatisch generiert.

09.01.2010 - 23:43 Uhr

Versuche dir mal lokal einen IIS aufzusetzen und das Szenario darauf zu reproduzieren.

Welchen Projekttyp verwendest du? Web Application Project oder Web Site Project? In welchem Verzeichnis befindet sie die von dir genannte Klasse?

(denn interessanterweise kopiert er essenzielle Dateien nicht, wenn ich "Nur die Dateien, die zum Ausführen der Anwendung erforderlich sind" anwähle..

Welchen Dateien kopiert er nicht? Welche Dateiendung haben die und in welchem Verzeichnis liegen sie?

09.01.2010 - 23:40 Uhr

System.Threading.Thread.Sleep(1000); die Exception "Der Thread wurde abgebrochen."...

Wofür machst du sowas in einer Webanwendung. Vielleicht solltest du auf dem Zielrechner einen WindowsService schreiben, dem der dir Daten aufbereitet. Auf deiner Anzeigeseite hast du dann ein UpdatePanel was mit einem Trigger alle x Sekunden schaut, ob der WindowsService schon die gewünschten Daten generiert hat. Wenn ja, dann lädt das UpdatePanel die anzuzeigenden Daten.

ist das eine iis-einstellung wie lang ein thred laufen darf oder was ist da los?

Der Defaultwert liegt bei 110 Sekunden. Siehe die ExecutionTimeout - Property des httpRuntime Elementes. http://msdn.microsoft.com/de-de/library/e1f13641.aspx

02.01.2010 - 23:49 Uhr

Hi. Wofür genau brauchst du denn die Millisekunden?

Geht es dir um den Abstand zwischen zwei Zeiten? Dann wäre die StopWatch Klasse besser geeignet.

01.01.2010 - 23:36 Uhr

Nabend.

Also ich kann dir sagen, das es funktioniert. Auf der Arbeit betreue ich ein Projekt (Webapplicationproject), da ist auch eine xml Datei im App_Data Ordner. Sicher das die Datei dann auch in dem Ordner drin ist, wenn du sie im Cassini ausführst? Schau mal ob du bei der Datei noch eine Property setzen musst "Copy Content" oder wie die heißt.

Edit: Ansonsten, bist du sicher, das du den Pfad richtig mappst? Der von dir gepostete Pfad sieht etwas komisch aus 😉

31.12.2009 - 11:08 Uhr

Ich habe mich wohl getäuscht, es scheint innerhalb einer Anwendung nicht möglich zu sein, mehrere Authentification Tags zu verwenden.

http://msdn.microsoft.com/en-us/library/532aee0e.aspx

Configurable locations:

  • Machine.config
  • Root-level Web.config
  • Application-level Web.config
29.12.2009 - 23:57 Uhr

Hi.
Wenn ich mich grad nicht irre: Du kannst in jedem Unterverzeichnis eine extra web.config anlegen und dort entsprechenden <authentification>-Tag setzen.

29.12.2009 - 17:07 Uhr

Hallo.

Was genau willst du denn erreichen? Sollen es im Grunde zwei verschiedene Inhalte sein? Dann wären hier die Stichworte: Masterpage, Contentpage und ganz normale Hyperlinks

Willst du es auf einer Seite, weil es thematisch so verbunden is, das es wenig Sinn macht das ganze zu trennen, dann ist die von dir genannte Lösung mit dem Linkbutton doch in Ordnung. Hier bietet sich dann eventuell der Einsatz eines Updatepanel für den Bereich an, der sich bei dem Postback ändern. (Je nachdem was für einen Umfang deine Seite hat / Inwiefern du auf Resourcen wie z.b. Datenbankabfragen, Webservices zugreifst)

Und zwar sind beide Links asp-linkbuttons die mit im form-tag (runat=server) eingeschlossen sind.

Hast du doch normalerweise doch sowieso, das alle von einer riesiegen Form umgeben wird? Oder hast du darein nochmal eine Form gepackt?

Daher führt er beim klick auf die links auch die Feld Validatoren aus, was nicht gewünscht ist Setze bei beiden LinkButtons die Property CausesValidation auf false.

Zusätzlich habe ich keine Methode gefunden formatierten Text einzufügen, ohne einfach den per html formatierten Text in die DIV-Container zu schreiben.

Hier musst du etwas ins Detail gehen. Woher kommt der einzufügende Text und wie genau sieht dein Markup aus?
Du hast formatierten Text und willst dir diesen in HTML umwandeln lassen? Oder geht es dir darum, wie du einen String der HTML-Code enthält innerhalb eines div-Containers platzierst. Du könntest z.b. ein Literal nehmen und der Text-Property den HTML-Code zuweisen.

Gehe hier einfach etwas ins Detail, sonst könnte ich noch ettliche andere Punkte dranhängen.

27.12.2009 - 14:49 Uhr

Hi.

Dir sollten die Suchbegriffe "nslookup c#" weiterhelfen. Wenn du was entsprechendes gefunden hast, dann poste die deine Lösung, damit alle was davon haben.

24.12.2009 - 23:19 Uhr

Hallo miteinander.

Ich bin auf der Suche nach einem neuen NAS mit Raid1 Möglichkeit. Zurzeit benutze ich die Linkstation Pro Duo von Buffalo (LS-W1.0TGL R1) jedoch habe ich jegliches Vertrauen in diesen NAS verloren. In letzter Zeit schmiert mir das Dingen vermehrt ab, d.h. es ist nicht mehr über das Netzwerk erreichbar (weder Freigaben noch über das Webinterface) es reagiert auf keine Knopfdrücke mehr, nur noch auf die Methode, das ich den Stecker manuell ziehen muss. Das ist auf Dauer natürlich auch nicht zu vertragen und ich habe jedes mal im Hinterkopf "obs nun noch funktioniert".

Ich denke ich bin mit einem Konkurrenzprodukt deutlich besser bedient. Kann mir da jemand ein NAS empfehlen? Es wäre schön wenn dieses noch über einen USB Anschluss verfügt, sodass ich eine andere Platte dranhänge, um zu festgelegten Terminen noch Backups machen zu können.

23.12.2009 - 13:49 Uhr

Da du ja schon die DataTable modifzierst, kannst du nun auch wieder AutoGenerateColumns auf true setzen.

Dir sollte im Klaren sein, das wenn du diese Property auf false setzt, du selber dafür morgen musst, das die Columns in dem Anzeigecontrol sind.
Siehe dazu den von MarsStein verlinkten MSDN Artikel.

Würdest du mit einem DataSourceObjekt, wie z.b. einer LinqDataSource arbeiten, dann könntest du dir das Markup sogar selber vom Designer generieren lassen (DataSource über den Designer auswählen, dann kommt eine Frage, ob du die Columns generieren lassen willst.)

22.12.2009 - 20:08 Uhr

Hi.

Du kannst einer ListView eine ImageList zuweisen. Ein ListView hat zwei entsprechende Properties: SmallImageList und LargeImageList. Les dir mal im MSDN entsprechende Erklärungen durch, dann wirst du feststellen, welche Propertie für welchen View-Wert ist.

Solltest du das ListView im Details-Mode anzeigen lassen, dann ist eventuell auch OwnerDrawing eine Möglichkeit. Beispiele siehe MSDN oder z.B. hier hatte ich mal was gemacht. Bitmap oder Gif als ListViewItem

22.12.2009 - 15:57 Uhr

Hi.
Ja sowas kann man machen.

Ein Tipp um zum gewünschten Ziel zu kommen:

int notenAnzahl = int.Parse(Console.ReadLine());

Für den Rest musst du nur noch eine Schleife (vorzugsweise eine for-schleife) verwenden.

19.12.2009 - 14:17 Uhr

Moin. Wenn ich dich richtige verstanden habe, dann helfen dir da Events weiter. Dein UC1 muss dann ein entsprechendes Event schmeißen, was von der Form abonniert ist. Dann macht die Form das UC1 unsichtbar und macht andere Operationen mit UC2.

Siehe [FAQ] Eigenen Event definieren / Information zu Events

19.12.2009 - 11:15 Uhr

Morgen.
Les dir am besten mal [FAQ] Kommunikation von 2 Forms durch, das wird dir mit Sicherheit helfen.

18.12.2009 - 18:50 Uhr

Vielleicht hilft dir der Stichpunkt Historypoints weiter

18.12.2009 - 18:47 Uhr

. Das Problem das ich mir dabei nur vorstelle ist, dass für alle Eingabefelder umzusetzen und das sind nicht wenige. da wäre ne automatische Lösung am besten, sofern das möglich ist.

Je nachdem wie viele es sind, bietet sich an, die für jedes Control einen entsprechenden RegulateExpressionValidator zu verwenden, oder folgendes Konstrukt zu werden:

Du verwendest nur einen RegulateExpressionValidator, und zwar weißt du in einer Schleife diesem Validator jeweils ein anderes Control zu und führst die Validate() Methode des Validators aus. Hat aber die Nachteile, das du dann nur serverseitige Validierung hast und es zu vielen unnötigen Prüfungen kommen kann.

Wäre abzuwägen.

18.12.2009 - 18:43 Uhr

In bestimmten Situationen kannst du die Controls auch per String ansprechen. Solch eine Situation hast du z.b. bei Controls, die zur Anzeige ein sich wiederholendes Layout verwenden. So z.B. in einem GridView die einzelnen Spalten.

Dort kann du z.B. im RowDataBound-Event mit

e.Row.FindControl("foo")

und einem entsprechenden Cast an ein Control aus dieser Row kommen.

Dabei musst du aber unterscheiden, das du bei solch einer Situation auch keine andere Wahl hast, weil du eben das Control nicht über die ID im Sinne von

 this.abcd 

ansprechen kannst.

18.12.2009 - 00:15 Uhr

@Taucher:

Ich weiß ja nicht wie es dir geht, aber ich habe seine Fehlerbeschreibung beim ersten Durchlesen problemlos verstanden.

Sicher das der Server einwandfrei konfiguriert ist? D.h. entsprechende Frameworkversionen, Servicepatches und Drittkomponenten sind in den richtigen Versionen auf dem Server?

Wie testest du lokal? Mit Cassini? Bekommst du das Projekt auf deinem lokalen IIS zum laufen? Hast du vielleicht (binäre) Dateien im Projekt bei denen "Copy local" auf false steht?

12.12.2009 - 08:49 Uhr

Morgen.
Je nach Einsatzszenario ist JavaScript da vielleicht sogar noch die bessere Variante.

05.12.2009 - 12:05 Uhr

Moin.

Versuch beim Laden der customErrorPage mal folgenden Code auszuführen:

 HttpContext ctx = HttpContext.Current;
 Exception exception = ctx.Server.GetLastError ();
27.11.2009 - 09:35 Uhr
public class intWrap
{
 public int Zahl1 {get;set;}
 public int Zahl2 {get;set;}
}

Dictionary<string, intWrap>
24.11.2009 - 10:39 Uhr

Schau mal im Snippet-Forum. Da hat floste ein Control gepostet, das deinen Ansprüchen genügen sollte

18.11.2009 - 20:10 Uhr

Wenn jemand 8 Kästchen markiert, werden 8 verschiedene ID's verküpft und mit einem "," getrennt.

Verwende Generics und nimm eine List<int> (je nachdem was für IDs du hast).

14.11.2009 - 20:49 Uhr

Kannst du der BehaviorID vielleicht auch die UniqueID der jeweiligen Controls zuweisen? Probiers mal aus.

14.11.2009 - 01:08 Uhr

Hallo,
und herzlich willkommen im Forum.

Schau dir erst einmal diese Threads an:
[FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
[FAQ] Kommunikation von 2 Forms (hier hast du zwar nicht zwei Forms, jedoch sollte dir die dort verlinkten Kommunikationsmodelle weiterhelfen)

Die von dir gepostete Lösung kann nicht funktionieren, da du in der von dir angesteuerten Seite (Default.aspx (erster Codeblock)) eine zweite Seite("klasse" erbt von "Default" und diese ja von UI.Page) erstellen willst und dort dann auf eine Steuerelement zugreifen willst, obwohl dieses nicht existiert. (auch empfehlenswert: http://msdn.microsoft.com/en-us/library/ms178472.aspx)

Gerenerell der Rat: Lass die Zugriffe auf die Steuerelemten in der Seite / Control, in der sich das Objekt auch befindet. Hier wären Rückgabewerte eine Lösung:

public partial class Default : System.Web.UI.Page
{
  void Page_Load()
  {
    testclass klasse = new testclass();
    this.Label1.Text = klasse.methode();
  }
}
public class klasse
{
  public string methode()
  {
    return "Test;
  }
}
14.11.2009 - 00:53 Uhr

Nur für den Aufbau/Laden des Grids braucht der ne ganze Weile. Gibt es irgendeine Möglichkeit den Aufbau zu beschleunigen?

Ist Paging vielleicht eine Option?

Wenn ich dann im Grid einen Datensatz auswähle (wird dann farblich markiert), dann wird jedesmal das ganze GridView neu aufgebaut. Gibt es irgendeine Möglichkeit das zu verhindern?

Was genau willst du verhindern? Die Farbe, oder das man eine Zeile anklicken kann?

Zeilenfarbe: SelectedRowStyle Property und dort dann die Background-Color Property

Selektieren verhindern: Sicherstellen, dass die AutoGenerateSelectButton Property auf false steht und du im Markup keinen Button mit dem CommandName "Select" erstellst.

14.11.2009 - 00:45 Uhr

Hallo multitrust,
wenn LINQ zur Verfügung steht,
dann mach aus dem String mit Split einen string[] und verwende die Distinct() Extension Method.

@axawd: Seit .net Framework Version 2.0 sind generische Datentypen möglich. Die Arraylist hier an dieser Stelle hinfällig, oder wie herbivore so gerne sagt, "... gehören in die Mottenkiste." Siehe [Übersicht] .NET Framework 2.X Auflistungen (Collections)

14.11.2009 - 00:39 Uhr

Hi.

aber bei der Validierung passiert nichts. Ideen?

Haben alle Controls, die in der ValidationGroup die entsprechende ValidationGroup gesetzt? Die Validatoren ebenfalls?
Wie sieht es mit dem Control aus, das den Postback (oder Klick, je nachdem) auslöst? Kannst du dort auch die ValidationGroup setzen und/oder ist die "CausesValidation"-Property auf true?

14.11.2009 - 00:30 Uhr

Nabend zusammen.

Ich bin auf der Suche nach einem neuen Schwarz/Weiß Drucker mit Ethernet-Anbindung, sodass ich den Drucker als Netzwerkdrucker betreiben kann.

Momentan habe ich einen Canon LBP2900, und einen Printserver von Netgear dazwischen. Die Lösung lief nie ganz so, wie ich wollte, trotzdem zufriedenstellend. Nun hat sich herausgestellt, das mein Drucker keine Windows 7 Unterstüzung erhalten wird, und den der Windows XP Treiber im Kompabilitätsmodus auch nicht richtig funktioniert.

Ich hatte nun mehrfach den Fall, das der Drucker den Ausdruck nicht komplett gemacht hat, d.h. beim Ausdrucken von PDFs gerne einfach mal Zeichen weglässt (So werden gerne mal Exponenten in mathematischen Formel einfach ignoriert und nicht mit ausgedruckt) Da dies ein absolutes NoGo für einen Drucker ist und ich folglich das Vertrauen in ihn verloren habe, brauche ich einen neuen Drucker, der solch ein Fehlverhalten nicht aufweist. Am liebsten nicht von Canon (weil ich die Firmenenpolitik, für einen vor 5 Jahren herausgebrachten Drucker keinen neuen Treiber zu releasen nicht verstehen kann und mir in Zukunft weitere Probleme sparen will).

Kann mir da jemand was gutes empfehlen? (Für den Privatgebrauch, also nach Möglichkeit nicht in der obersten Preisklasse)

Schönen Abend euch noch