Laden...
Avatar #avatar-3191.gif
MarsStein myCSharp.de - Experte
Sr. Softwareentwickler (ophthalmologische Lasersysteme) Trier -> München Dabei seit 27.06.2006 3.170 Beiträge
Benutzerbeschreibung

Forenbeiträge von MarsStein Ingesamt 3.170 Beiträge

08.12.2011 - 10:46 Uhr

Hallo,

Du setzt die ContentLength bereits, bevor Du weisst, wie lang Deine Daten eigentlich sind.
Denn das von encoding.GetBytes(postData) gelieferte Bytearray hat eine andere Länge als der String. Setze also die ContentLength erst nach dem Umwandeln des Strings auf die Länge des resultierenden Bytearrays.

Gruß, MarsStein

07.12.2011 - 16:18 Uhr

Hallo,

als erstes brauchst Du eine Referenz auf die Assembly in Deinem Projekt, und zum importieren in eine .aspx-Datei die Zeile wie in dem Beispiel im Download:

<%@ Register TagPrefix="cc1" Namespace="i386.UI" Assembly="i386.UI" %>

ggf. noch ein using i386.UI im CodeBehind.
Durch die @Register-Direktive kannst Du die Controls im registrierten Namespace dann über das TagPrefix und den Klassennamen ansprechen.

Wenn das nicht hilft, erklär mal wo genau das Problem liegt.

Gruß, MarsStein

07.12.2011 - 15:07 Uhr

Hallo,

Socket client = result as Socket;

dürfte schiefgehen, da ein IAsyncResult nun mal kein Socket ist. Probier stattdessen mal mit

Socket client = result.AsyncState as Socket;

.
Die folgenede NullReferenceException beim Zugriff bekommst Du vermutlich nicht mit, weil sie während der asynchronen Operation in einem anderen Thread geworfen wird.

Gruß, MarsStein

07.12.2011 - 14:52 Uhr

Hallo,

kannst Du nich einfach den SelectedValue setzen (lassen)? So in der Art:

<asp:DropDownList ... SelectedValue='<%# Bind("PLATZ") %>'/>

Gruß, MarsStein

07.12.2011 - 14:46 Uhr

Hallo,

die zugrundeliegende Zeile in der zweiten DropDownList ein Item hat was NICHT vorhanden ist

verstehe ich nicht so ganz... Was die Umsetzung des "SelectedValue='<%# Bind("STANDORT") %>'" angeht:
Normalerweise liegt ja ein Objekt zugrunde, dessen Daten gebunden werden. Dieses Objekt greift sich der DataBinder und sucht den zu bindenden Wert raus.
Das entspräche im CodeBehind etwa sowas:

myDDL.SelectedValue = myBoundDataItem["STANDORT"]

Gruß, MarsStein

07.12.2011 - 14:38 Uhr

Hallo,

bitte überschütte uns doch nicht mit einer solchen Fülle an Informationen...

möchte die Eingaben serialisieren und in der DB speichern

Im Ernst, was erwartest Du jetzt als Antwort? Beschreib doch mal, was Du so probiert hast, und worin das konkrete Problem besteht.

Gruß, MarsStein

07.12.2011 - 14:32 Uhr

Hallo,

irgendeinen Tod wirst Du an dieser Stelle sterben müssen.
Es kann nur ein <form>-Tag geben, das für die Postbacks benutzt wird (mit runat="server"). Wenn dieses Formular abgeschickt wird, wird die Validierung gestartet -> die validiert dann auch alle Controls im Form.
Das ist genau die Stelle, an der Du eingreifen kannst:
Die Standard-Validatoren sind genau auf dsa ASP.NET-Konzept ausgelegt, dass es nur eine Form gibt, und Du kommst bei der Validierung nicht dazwischen, daher sind diese hier unpraktikabel.
Du könntest mit CustomValidator(en) arbeiten und die ganze Validierung selbst machen, dann kannst Du in der Validierungsfunktion z.B. prüfen, welcher Button geclickt wurde und nur die zugehörigen Controls behandlen.

Gruß, MarsStein

24.11.2011 - 15:41 Uhr

Hallo,

Gibt es sowas und wenn ja wo?

Hab' ich noch nicht gesehen. Vielleicht mal bei Codeproject oder so suchen.

Andererseits sind es - wenn Du konsequent UTF-8 benutzt - genau 4 Zeichen, die Du noch ersetzen musst, nämlich die unter Benannte Zeichen für HTML-eigene Zeichen aufgeführten. Da hält sich der Aufwand in Grenzen.

Vor einer doppelten Codiereung musst Du Dich allerdings selber schützen - ein einmal codierter String sollte aber auch nicht nochmal kodiert werden, sonst ergibt sich genau die Problematik mit & in vorhandenen Entitäten.

Gruß, MarsStein

23.11.2011 - 16:12 Uhr

Hallo,

der Stack hat Push(...) und Pop(), die Queue analog dazu Enqueue(...) und Dequeue().
Für Diene Zwecke eignet sich die Queue wahrscheinlich besser, ausser es ist Dir egal in welcher Reihenfolge die Elemente abgearbeit werden (Stack ist ein LIFO, Queue ein FIFO)

Gruß, MarsStein

23.11.2011 - 15:56 Uhr

Hallo,

oder müsst ich das DataGrid innerhalb des Click-Events nochmal neu laden und binden?

Nein! Aber Du musst abfragen, ob ein PostBack vorliegt, und nur dann die Daten abrufen und binden, wenn das nicht der Fall ist, sonst machst Du durch das neue Setzen der DataSource den ViewState kaputt.

Probier mal

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                CRMService crm = new CRMService();
                GridView1.DataSource = crm.GetAllCat();
                GridView1.DataBind();
            }
        }

Wenn Du Daten änderst, und die Änderungen anzeigen willst, setze die DataSource am Ende Deines Handlers oder nach dessen Ausführung neu.

Gruß, MarsStein

21.11.2011 - 20:41 Uhr

Hallo,

es ist wie Abt schon schrieb: Wenn Du die Render-Methode auf Ebene von Page überschreibst, dann bedeutet das, dass in dieser Methode alles passiert, was Ausgaben an den Client erzeugt -> dadurch überschreibst Du also das komplette Verhalten der Seite, alles was im .aspx-File steht, ist dann nicht mehr relevant.

Bau stattdessen in der .aspx Controls ein, an die Du Deine Daten binden kannst, z.B. Literal, oder schreib Dir ein Usercontrol dafür. In letzterem kannst Du dann ja auch das Rendern selbst übernehmen, wenn Du unbedingt willst... ist aber eher unüblich.

Gruß, MarsStein

21.11.2011 - 20:31 Uhr

Hallo zusammen,

@Abt:
Das ist bei Webforms tatsächlich egal, man kann für verschiedene Controls, die WWiederholungen enthalten (Grids, Repeater, ListViews und dergleichen) eine ID im Template vergeben. Auf dem Client werden dann eindeutige IDs ausgeliefert, und auf dem Server kann man sie trotzdem über FindControl des entsprechenden Items wiederfinden.

@Falke22
Da hast Du vermutlich ein Problem mit dem Lifecycle. Verrate uns mal, an welchen Stellen im Code (welchem Handler) die Daten gebunden werden, und ob Du dazu irgendwo eine Abfrage drinhast, ob es sich um einen PostBack handelt. Ich hab da eine Vermutung aber ohne etwas konkretere Angaben von Dir müsste ich jetzt viel zu weit ausholen.

Gruß, MarsStein

15.11.2011 - 19:49 Uhr

Hallo,

ich habe Dich scheinbar missverstanden, aber ich kann mir jetzt auch nicht richtig wsa drunter vorstellen was Du eigentlich willst.
Wenn Du den Benutzer auf den fremden Server umleiten wilst, damit er dort in einem Formular Eingaben tätigen kann, ist das kein Problem. Allerdings wird dann auch dieser fremde Server seine Antwort direkt an den Client leiten -> da bekommst Du dann nix auf Deinem Server.
Oder willst Du das Formular in Deiner Webanwendung nachbauen? Dann könntest Du die Daten erst an Deinen eigenen Server posten, und der schickt sie per Webclient an den fremden Server, wartet die Antwort ab und dann kannst Du an den Client zurückschicken was Du willst, entweder die direkte Antwort des Fremdservers, oder eine eigene Meldung.

Ich bin aber nicht sicher, ob ich Deine Problemstellung richtig erfasst habe, vielleict erklärst Du nochmal Schritt für Schritt ws passieren soll bzw. wie Du Dir das vorgestellt hast.

Gruß, MarsStein

15.11.2011 - 19:23 Uhr

Hallo,

immer nur dann vorhanden ist, wenn es gebraucht wird ist ein guter Stichpunkt. Damit beantwortest Du Dir die Frage ja schon selbst. Felder/Properties werden dann nötig, wenn sie an mehreren Stellen innerhalb der Klasse benötigt werden (private), oder von ausserhalb der Klasse zugreifbar sein sollen (public).

Es kann aber auch Sinn haben ein Feld/Property anzulegen, wenn der Aufwand der Objekterstellung sehr hoch ist und die Methode, die das Objekt benötigt, wahrscheinlich öfters aufgerufen wird -> dann kann man sich die erneute Initialisierung sparen.

Gruß, MarsStein

15.11.2011 - 19:16 Uhr

Hallo,

zum Beispiel mit dem WebClient oder per HttpWebRequest.

Gruß, MarsStein

15.11.2011 - 19:13 Uhr

Hallo,

in der ASPX Datei die GridView Spalte für Spalte erstellen zu lassen, ohne ihr vorher irgendeine Quelle und der gleichen zu geben

-> geht natürlich nicht. Der Aufbau der Spalten erfolgt erst beim Aufruf von DataBind(), nachdem die DataSource gesetzt wurde, aber das sollte eigentlich keine Rolle spielen.
Du kannst die Datenquelle im CodeBehind setzen, und da die Seite bei jedem Aufruf komplett neu aufgebaut wird, kannst Du dementsprechend auch die Datenquelle zwischen zwei Aufrufen wechseln.

Gruß, MarsStein

14.11.2011 - 22:28 Uhr

Hallo,

zu 1)
In welcher Dll, auf die Du Verweisen musste, eine bestimmte Klasse steckt, kannst Du der Doku entnehmen. DllImport steckt zwar im Namespace System.Runtime.InteropServices, aber in der Assembly mscorlib.dll.
Assembly und Namespace stehen immer ziemlich zu Anfang der Dokuseiten.

zu 2)
Alle Funktionen ausser Konstuktoren haben immer einen Rückgabewert, wen nsie gar nichts zurückgeben sollen ist dieser void.

Bis hierhin fallen die Fragen allerdings unter [Hinweis] Wie poste ich richtig? 1.1.1

zu 3)
In irgendeiner Klasse muss die Funktion ja stehen, das kann also auch Deine Hauptklasse sein. Sie ist ja ohnehin static. Ich vermute, dass OpenDevice aber eigentlich ein Objekt zurückliefern sollte, dass Du beim Zugriff auf das Device dann verwenden solltest.
Vielleicht aber auch nicht. Wie versuchst Du denn anschließend zuzugreifen? Noch mehr DllImports?

Gruß, MarsStein

14.11.2011 - 22:14 Uhr

Hallo,

der Vollständigkeit halber sei noch [FAQ] TcpClient: einfaches Beispiel erwähnt.

Gruß, MarsStein

14.11.2011 - 22:05 Uhr

Hallo,

TcpClient und TcpListener sind Grundlegend Klassen, die intern selbst auf Sockets zurück greifen. Sozusagen eine Schicht drüber. Völlig richtig ebenso die Aussegen zu WCF und Remoting.

Allerdings halte ich es , wenn man ernsthaft Netzwerkprogrammierung verstehen und betreiben will, für wichtig , sich auch mal mit dem nackten Socket auseinanderzusetzen. Der ist das grundlegendste Objekt quasi jeder Netzwerkprogrammierung, die Basisschnittstelle schlechthin.
Viele Fehler, die in "höheren" Schichten auftreten, versteht man wesenlich besser , wenn man hier einschlägige Grundlagenkenntnisse auf tiefster (erreichbarer) Ebene hat.

Zudem ist es eine Frage der Komplexität der zu übermittelnden Daten und der Art/Geschwindigkeit/Stabilität des zugrundeliegenden Netzwerks. Je komplexer der abzubildende Netzwerkverkehr, desto eher lohnt sich der Weg einer "höheren" Architektur wie WCF. Bei sehr einfachen Daten (einzelne Bytes zur Statusübermittlung oder einfache Stringübertragungen) hat man bei diesen höheren Frameworks aber auch mit erhblichem Overhead zu rechnen, was bei cshwachen bzw. instabilen Netzen nicht unbedingt wünschenswert ist, vor allem wenn es sich um sehr einfache Daten handelt, die zu übertragen sind.

Eine Abwägung empfiehlt sich IMO immer. Allerdings würde ich den nackten Socket wirklich nur zu Lernzwecken heranziehen, die allermeisten (einfachen) Anwendungsfälle lassen sich mit TcpListener/-Client und UdpClient ohne zusätzlichen Overhead totschlagen, bei komplexeren Anwendungsfällen spielt der Overhead, der durch höhere Frameworks entsteht, ohnhin nur noch eine untergerdnete Rolle, so dass man gleich diese verwenden kann.

Gruß, MarsStein

11.11.2011 - 15:54 Uhr

Hallo,

realisiere den Download besser mit einem HttpHandler (.ashx, Forumssuche bringt viele Beispiele). Wenn Du zur Generierung noch die Post-Datenbrauchst, kannst Du auch von der Page aus mit this.Server.Transfer(...) umleiten und dabei die Überladung mit bool-Parameter nutzen, die die Daten beibehält/weitergibt.

Setze auch den Content-Disposition-Header für die Response auf attachment;.

Wenn Du's unbedingt in der Page abfädeln willst, probier mal Response.End() 😉

Gruß, MarsStein

10.11.2011 - 11:35 Uhr

Hallo,

gleichnochmal de Hinweis: Gewöhne Dir das Response.Write() wieder ab. Es gibt nur ganz wenige Fälle, in denen das benötigt wird.

Erstelle die GridView lieber im Markup (im .aspx-File) -> um es ein- und auszublenden kanst Du dann die Visible-Property verwenden.

Für die Erstellung der Spalten kannst Du AutoGenerateColumns der GridView auf true setzen.

Wenn Du wie in Deinem Beispiel eine SqlDataSource verwendest, läuft das mit dem Bearbeiten und Löschen automatisch, es wird direkt in die Datenbank geschrieben und anschließend die aktuellen Daten angezeigt. Wenn Du über einen DataAdapter gehst, musst Du die Änderungen selbst in die DB schreiben (dazu noch die entsprechenden Ereignisse behandeln) und für die Aktualität de rangezeigten Daten selbst sorgen. Also schreiben -> nochmal lesen -> neu binden.

Gruß, MarsStein

10.11.2011 - 11:26 Uhr

Hallo,

das Response.Write() solltest Du Dir abgewöhnen. Deine Scripte kannst u mit ClientScript.RegisterStartupScript(...) registrieren.

Zum Weiterleiten auf die nächste Seite kannst Du Server.Transfer(...) oder Response.Redirect(...) verwenden.

Gruß, MarsStein

10.11.2011 - 11:19 Uhr

Hallo,

Das is Ultracool

Nein, das ist Mist weil schlecht lesbar und verwirrend.

Ansonsten kann ich den Fehler nicht nachvollziehen, daher 2 Fargen:

Wer ist ControlCreator.Instance, und was macht ClearProperties()?

Gruß, MarsStein

09.11.2011 - 13:49 Uhr
“Once Heracles was walking by a lake and there he saw Hydra. He ran up to her and cut her single head off. But instead of one head two more grew. Heracles cut them off too but 4 more appeared. He cut the 4 heads off - and there were 8 ones... So passed one hour, two hours, three hours... And then Heracles cut Hydra's 32768 heads off and Hydra died for she was 16-bit.”
09.11.2011 - 10:11 Uhr

Hallo,

hat es einen bestimmten Grund, dass Du das alles im CodeBehind erstellst?
IMHO wäre es einfacher, das deklarativ im Markup zu machen -> dann schliesst Du von vorneherein einige Fehlerquellen aus, die aus dem Page-Lifecycle resultieren.

In Deinem Fall erstellst Du bei jedem Aufruf die Spalten neu - was auch soweit korrekt ist, da sie ja nicht im Markup stehen. Allerdings erstellst Du sie erst im Page_Load, und das ist zu spät, weil dann der Viewstate schon wieder hergestellt wurde.
Dynamische Steuerelemente müssen im Page_PreInit (bei Pages) oder im Page_Init (bei Controls) neu erzeugt werden, der Aufruf von CreateColumns() gehört demnach in eine dieser Methoden.

Wenn ich die CheckBox im Header auf "checked" setze,
wird ein PostBack ausgelöst und alle Templates in der DataGridView sind verschwunden.

Warum die Templates ganz verschwinden, kann ich im Moment nicht sagen, aber wenn Du Deinen Aufruf von CreateColumns verschoben hast und das Problem weiterhin auftritt, werde ich mal versuchen das genau nachzuvollziehen.

Wie kann ich dieses Problem lösen und wie kann ich alle CheckBoxen auf "checked" setzen?

Dazu behandelst Du den PostBack, der durch das Klicken auf die Header-Checkbox gemacht wird - also deren CheckedChanged-Event.
Dort hast Du 2 Möglichkeiten, entweder Du bindest die Daten neu, und behandelst das RowDataBound-Event der GridView, oder Du bindest nicht neu und iterierst durch die ganzen GridView-Rows. In beiden Fällen musst Du aus der jeweiligen Row Dein Checkbox-Element raussuchen (FindControl) und dann selbst auf checked setzen.

Eine andere Lösung wäre - wie in meinem letzten Beitrag schon erwähnt, AutoPostback auf false zu setzen bei der Header-Checkbox, und ein clientseitiges Javascript die Checkboxen markieren zu lassen.

Gruß, MarsStein

08.11.2011 - 14:15 Uhr

Hallo,

mit "SelectedValue" ist "tabelle leer. Bei "SelectedItem" bekomme ich einen Fehler. SelectedValue ist aber der Richtige. Du baust aber immer Deine komplette ListBox im Page_Load neu auf, daher gehen die Selektionen verloren, was zur Folge hat, dass SelectedItem==null und SelectedValue leer ist.

Bei "DataTextField" und "DataValueField" landet in "tabelle" "TABLE_NAME", aber nicht der Tabellenname selber.

Was auch nicht verwunderlich ist, da diese beiden Properties wirklich nur den Namen des gewünschten Feldes speichern (für's DataBinding).

Pack mal um Deinen gesamten Code im Page_Load noch ein

if(!IsPostBack)
{
  // hier Dein bisheriger Code
}

Dann sollte der ViewState dafür sorgen, dass Deine Selektion erhalten bleibt und SelectedValue Deinen ausgewählten Wert enthält.

Gruß, MarsStein

08.11.2011 - 10:52 Uhr

Hallo,

Rufe ich den Webservice im Debug Modus auf, klappt es.
Rufe ich den Webservice im lokalen IIS auf, klappt es nicht mehr.

Klingt nach einem Berechtigungsproblem beim Konto, unter dem der IIS die Anwendung ausführt -> dsa Konto des AppPools, in dem die Anwendung steckt.
Ob es tatsächlich daran liegt, kannst Du jedenfalls mal ausprobieren, indem Du den AppPool unter Deinem eigenen Benutzer laufen lässt (wenn da noch mehr Apps im selben Pool laufen, würde ich empfehlen, zu Testzwecken einen eigenen AppPool anzulegen).

Gruß, MarsStein

08.11.2011 - 10:32 Uhr

Hallo,

Im Header der CheckBox-Spalte befindet sich ein HeaderTemplate mit einer
CheckBox, die bei einem Checked alle CheckBoxen auf "checked" setzt.

Wie hast Du das realisiert? Ich vermute, da läuft ein clientseitiges Script, und der Server hat von der Aktion noch keine Ahnung. Beim Postback gehen die Informationen dann verloren.
Das kann auch damit zusammenhängen, wann die dynamischen Spalten erzeugt werden.
Je nachdem wie's zusammenhängt, wären verschiedene Lösungsansätze möglich, entweder musst Du die Checkboxen beim PostBack serverseitig anhaken, oder Du musst die dynamischen Anteile früh genug erstellen (Page_PreInit).
Denkbar wäre auch, den AutoPostBack für die Checkbox im Header abzustellen -> dann musst Du beim nächsten PostBack alles selbst behandeln.

Wie gesagt, können verschiedene Ursachen vorliegen die verschiedene Lösungen brauchen -> da wäre etwas Code hilfreich, vor allem genau die Stellen, an denen die Elemente erstellt werden (in welchen Handlern?) und befüllt werden (wo wird DataBind aufgerufen, und wie füllst Du Deine TemplateFields?).

Gruß, MarsStein

04.11.2011 - 16:44 Uhr

Hallo,

natürlich halten sich die Seiten schon daran - es kann aber sein, dass verschiedene Seiten einen Teil der MasterPage exakt gleich nutzen sollen -> dann kann man es direkt in die Masterpage schreiben. Ein Beispiel:

Masterpage.master:


<ContentPlaceHolder ID="FirstContent">
</ContentPlaceHolder>

Nehmen wir an, Du hast 5 abhängige Seiten, alle enthalten ein Content ein <asp:Content>-Tag für den FirstContent.

Nun fügst Du einen zweiten ContentPlaceholder hinzu:

<ContentPlaceHolder ID="SecondContent">
  <h1>Default Content</h1>
  <div>Hier steht etwas, was viele Inhaltsseiten gleich anzeigen sollen</div>
</ContentPlaceHolder>

Die ersten 3 Inhaltsseiten sollen dort alle den selben Inhalt darstellen -> dann könnte man den schon als Standardinhalt in den Master schreiben.
Seite 4 und Seite 5 haben aber trotzdem die Möglichkeit, über ein weiteres <asp:Content>-Tag für SecondContent den Standardinhalt mit eigenen Inhalten zu ersetzen.

Würden alle Seiten automatisch ein <asp:Content> für SecondContent erhalten, müssten auch alle Seiten zwangsweise ihren eigenen Inhalt zur Verfügung stellen, eine gemeinsame Nutzung eines Standardinhalts wäre dann z.B. nicht möglich.

Es ist also konzeptionell für ASP.NET-Seiten, die eine MasterPage benutzen, ein KANN, eigene Inhalte einzubauen, aber kein MUSS, mit dem Zusatzfeature, Standardinhalte anzugeben, ebenfalls ein KANN und kein MUSS.

Das in der Masterpage definierte Layout wird aber immer greifen.

Gruß, MarsStein

04.11.2011 - 15:52 Uhr

Hallo,

Gibt es einen Workaround um die Seiten automatisch anzupassen?

Da wäre mir nichts in dieser Richtung bekannt.
Ich glaube auch nicht, dass es da etwas gibt, und zwar aus folgendem Grund:
Bei ASP.NET kannst Du auch in der Masterpage schon Inhalte in die ContentPlaceHolder schreiben. Dieser wird als Default.Content benutzt. Alle Pages, die die MasterPage benutzen und einen oder mehrere der ContentPlaceHolder nicht benutzen (es also kein Content-Element für diese ContentPlaceHolder gibt), zeigen dann den Inhalt aus der MasterPage an.
Es müssen also gar nicht unbedingt alle ContentPlaceHolder von einer Page ersetzt werden, und in einigen Fällen ist das auch genau so gewünscht.
Alle abhängigen Seiten automatisch so anzupassen, dass sie die neuen ContentPlaceHolder ersetzen, würde diesem Konzept entgegenstehen.

Also wirst Du die abhängigen Seiten wohl manuell anpassen müssen.

Gruß, MarsStein

28.10.2011 - 13:45 Uhr

Hallo,

Du musst es schon in einen <asp:Content> stecken, wenn Du eine Masterpage benutzt, anderfalls innerhalb des Form-Tags sonst klappt es nicht.
this.Controls ist aber das Toplevel der Page. Versuch es mal mit this.Form.Controls oder this.MyContentID.Controls beim adden.

Gruss, MarsStein

28.10.2011 - 13:09 Uhr

Hallo caipigott,

gar nicht. Ein Form-Tag hat im UserControl nix verloren. Das ist immer in der Page oder - wenn eine solche existiert - in der Masterpage.
Dein Control pflanzt Du dann einfach innerhalb des (in der Page) vorhandenen form-Tags rein, der Rest geht automatisch.

Gruss, MarsStein

27.10.2011 - 22:43 Uhr

Hallo,

dem Code nach liegt das Problem im Page_Load, da benutzt Du zum Fuellen der DataTable fuer die Rueckrunde den DataAdapter von der Vorrunde (da statt da2). Du wechselst also tatsaechlich zur Rueckrunden-View, die aber die Vorrunden-Daten laedt.
Da schon die Rueckrunden-View angezeigt wird, landest Du beim Sortieren in GridViewRueckrunde_Sorting, dort erstellst Du einen neuen Adapter, der diesmal die gewuenschten Daten laedt und anzeigt -> das haettest Du mit dem Debugger eigentlich finden koennen 😉

Sorry fuer die "ue" und "ae" ich sitze gerade an einer seltsamen Tastatur...

Gruss, MarsStein

27.10.2011 - 20:20 Uhr

Hallo,

sieht soweit OK aus.

  • Zeigt er wenn Du auf Rückrunde klickst die ganze Zeit noch das Vorrunden-Grid an?
  • Greifst Du sonst noch irgendwo auf die Visible-Eigenschaften zu?
  • Wo und wann werden die Daten gebunden?

Gruß, MarsStein

27.10.2011 - 20:05 Uhr

Hallo,

Entschuldigung für den Haufen Code...

Ist schon OK, schöner wäre es aber wenn es der richtige Code wäre, denn

Woran liegt das?

Das Problem wird sich vermutlich iregndwo in der Funktion Menu3_MenuItemClick verstecken, die hast Du aber nicht gepostet. Etwas vom CodeBehind wäre also hier treffender.

Gruß, MarsStein

27.10.2011 - 19:42 Uhr

Hallo,

so geht's natürlich auch.
Wobei Du Dir im Setter entweder den letzten else-Block (nicht aber dessen Inhalt) oder die beiden Zeilen mit value = returnName sparen kannst.
Und den String im if-Block zweimal zu splitten ist auch nicht nötig, wenn Du gleich beide Klammern als Separatoren mitgibst 😉

Gruß, MarsStein

26.10.2011 - 17:02 Uhr

Hallo,

Da kann ich mittendrin ja nichts ändern, oder doch?

Warum denn nicht?
Versuch mal

Name = ctx.Element("Name").Value.Split(...)[1],

Gruss, MarsStein

26.10.2011 - 13:19 Uhr

Hallo,

sprich alles, was zwischen ( und ) ist.

dann zerlege den Wert doch mit der String.Split-Methode und den Klammern als Separatoren.

Gruss, MarsStein

23.10.2011 - 14:24 Uhr

Hallo,

hast Du für die DDL AutoPostBack schon auf true gesetzt?

Gruß, MarsStein

21.10.2011 - 13:25 Uhr

Hallo RocketRoN,

Deiner Beschreibung nach bist Du schon auf dem richtigen Weg, Du kannst auch mal hier schauen:
[FAQ] Assistenten/Wizards: Mit Windows Forms eine Art Frameset einer Website nachbauen

Gruß, MarsStein

21.10.2011 - 12:08 Uhr

Hallo,

von der Syntax her müsste es so klappen:

    public class RemotingInterface<T>: MarshalByRefObject where T : new()
    {
    }

Gruß, MarsStein

20.10.2011 - 10:56 Uhr

Hallo Shinzo,

es freut mich, dass du eine Antwort gefunden und vielen Dank, dass du sie hier geschrieben hast. Noch besser ist es, eigene Lösungen als Antwort zu posten, damit der Thread nicht mehr in den "Fragen ohne Antwort" auftaucht. Durch diese Antwort ist das Ziel aber auch erreicht.

Gruß, MarsStein

18.10.2011 - 17:45 Uhr

Hallo,

es könnte klappen, wenn Du statt eines der virtuellen Verzeichnisse eine Web-Application erstellst und die Datei beim Download per HttpHandler auslieferst -> da kannst Du den Mime-Typen im Code setzen.
Beispiel:
ww[nop][/nop]w.meineseite.de/virtuellesverzeichnis/meine.mp4 --> für Abspielen im Browser
ww[nop][/nop]w.meineseite.de/webapplikation/download.ashx?id=meine.mp4 --> für den Download

Andererseits, warum das Ganze? Benutzer können doch, wenn Du einen Link auf die Datei legst, diese per Rechtsklick->"Link speichern" herunterladen.

Gruß, MarsStein

18.10.2011 - 13:55 Uhr

Hallo,

die GridView muss vermutlich in den Edit-Mode, damit Du die Checkboxen anclicken kannst (btw: ist ReadOnly für das CheckBoxField auf false?)

Ansonsten kannst Du auch ein TemplateField hernehmen und die Checkbox ins ItemTemplate stecken.

Gruß, MarsStein

18.10.2011 - 09:25 Uhr

Hallo,

Warum geht die bindung nicht?

Das lässt sich aus Deiner Beschreibung so ganz ohne Code nicht sagen. Ich vermute irgendwo einen Fehler in Deinem Code, möglicherweise ein Reihenfolgefehler bezügl. des Lifecycle.

Kannst Du mal etwas relevanten Code posten (in welchem Handler werden die Daten vom WS abgeholt? Wann/wo wird gebunden?)

Gruß, MarsStein

14.10.2011 - 11:37 Uhr

Hallo,

oder verwende statt Convert.ToInt32 besser Int32.TryParse, wenn's schiefgeht gibt die Methode false zurück und Du kannst entsprechend reagieren.

Gruß, MarsStein

12.10.2011 - 14:19 Uhr

Hallo Curse4Life,

das von Dir beschrieben Phänomen kenne ich in der Weise auch nicht, aber

Gibts ein Magic Verzeichnis das dieser IIS Watcher nicht abtastet

Du könntest mal versuchen, den App_Data-Ordner zu benutzen. Der ist eigentlich für dynamische Daten gedacht. Das Problem daran ist, dass der IIS Dateien aus diesem Ordner nicht direkt ausliefert, Du bräuchtest also zusätzlich noch einen HttpHandler, um diese Files für die Benutzer verfügbar zu machen.

Gruß, MarsStein

11.10.2011 - 10:18 Uhr

Hallo,

such mal bei Google nach XmlDictionaryReaderQuotas WCF, dann findest Du u.a.:
What is final answer for Set XmlDictionaryReaderQuotas programmatically for NetTcpBinding (für den programmatischen Ansatz) und Maximum array length quota (für einen Ansatz per Konfiguration).

Sollte man aber schon selbst finden...

Gruß, MarsStein

11.10.2011 - 09:51 Uhr

Hallo,

mit UDP Hole Punching hat das hier gar nichts zu tun.
Damit bezeichnet man eine Technik, die einem OHNE offene Ports oder UPNP erlaubt, Direktverbindungen zwischen 2 Clients aufzubauen, indem ein gemeinsamer Server, mit dem beide Clients verbunden sind, die Verbindung vermittelt.

Ich vermute, dass bei Deinem Problem einfach an der Gegenstelle (bei Deinem Freund) UPNP nicht aktiviert/eingeschaltet ist. Möglicherweise läuft einfach der UPNP-Dienst nicht?

Gruß, MarsStein

10.10.2011 - 16:39 Uhr

Hallo,

das ist mit Enabled und IsEnabled nicht diekt zu vergleichen:

Ein WebControl kann - wie Du sagst - Enabled==true sein und trotzdem IsEnabled==false => das ist wichtig, weil der Server entscheiden muss, ob z.B. enthaltene Formularelemente clientseitig aktiv oder ausgegraut erscheinen, aber die Eigenschaft des Childcontrols nicht verbogen werden soll, wenn der Zustand "nur" geerbt ist.

Bei Visible ist eine solche Unterscheidung nich nötig, weil immer alle ChildControls eines ausgeblendeten Controls unsichtbar sind -> RenderChildControls wird einfach nicht aufgerufen.

Einen vergleichbaren Mechanismus wie bei Enabled/IsEnabled ist mir nicht bekannt.

Gruß, MarsStein