Laden...

Forenbeiträge von AlfameisterT Ingesamt 154 Beiträge

04.01.2009 - 16:54 Uhr

Soderle, hier das Beispielprojekt.

Ist sicher nicht perfekt, zeigt aber das Prinzip.

Ich verwende es ähnlich für eine Webanwendung die Dokumente zusammenstellt (1 Job benötigt ca. 2-3 min Zeit).

Es kann aber Sinn machen, das Ergebnis dem Benutzer per Email zusenden um besser die Serverresourcen einzuteilen.

Viel Spaß.

04.01.2009 - 00:44 Uhr

Hallo Serial,

natürlich gibt es eine Lösung, aber du mußt hier einen ganz anderen Weg gehen.

Deine langandauernde Arbeit läßt du auf dem Webserver ausführen (z.B. in einer statischen Klasse), speicherst immer wieder den Status in einen Session zwischen und dein Usercontrol frägt zyklisch per Ajax den Status der Arbeit ab und gibt einen sinnvollen Text für den Benutzer aus.

Das mit AddOnPreRenderCompleteAsync brauchst du nicht. Denn meines Wissens kehrt der Seitenaufruf hier auch erst zum Browser zurück wenn deine Operation fertig ist. Also nützt dir das nichts.

Das erfordert paar Zeilen Programmieraufwand.
Ich kann dir morgen ein Beispiel Projekt senden.

.

30.06.2008 - 09:46 Uhr

Hallo Kalle,

ich kann dich beruhigen, beim MSSql hättest du das selbe Problem 😁

Wie schon geschrieben, entweder du versucht die Zugriffe zu synchronisieren oder man baut wirklich ständig neue Verbindungen auf.

Das Synchronisieren bremst aber vermutlich die ganze Anwendung nur aus. Das mit Monitor.Enter / Exit würde auch nicht funktionieren, da es immer etwas dauert bis die Verbindung wirklich wieder bereitsteht.

Stand lange Zeit vor dem selben Problem 🙁

.

28.06.2008 - 11:29 Uhr

Ansonsten gibts APIs mit denen du Office Dokumente erstellen und importieren und dann bearbeiten kannst, ohne ein Office auf dem Server installiert zu haben.

Ich habe mit den Produkten von[URL= http://www.aspose.com/]Aspose[/url] sehr gute Erfahrungen gemacht.

Auserdem kannst du die Dokumente komplett im Memory Stream bearbeiten, was mit dem ganzen Word über Com echt kompliziert ist.

28.06.2008 - 11:19 Uhr

Vielen Dank.
Schaut ganz gut aus. Nächste Woche teste ich das mal.
Der kann auch mit der SQLExpress Edition, woran viele Tools scheitern.

27.06.2008 - 09:16 Uhr

Hallo,

ich habe auf einem SQLExpress Server 2 Datenbanken mit gleichem Inhalt.
Ich suche ein Tool mit dem ich tabellenweise von DB2 auf DB1 auf Knopfdruck kopieren kann.
Ich möchte nicht die ganze DB2 auf DB1 kopieren, sondern nur gewisse Tabellen.

Hintergrund:
Es gibt eine Version "Freigegeben" und eine "Vorbereitung".
Neue Benutzer z.B. werden in Freigeben gepflegt, Inhalte in Vorbereitung. Mit der herkömmlichen Backup Restore Funktion würde hier neue Benutzer überschrieben werden.

Kennt jemand ein Tool, darf ruhig auch kommerziell sein.
Vielen Dank.

ich hoffe ich das richtige Forum erwischt.

22.06.2008 - 00:15 Uhr

Suchst du die Monitorauflösung oder die aktuelle Fenstergröße?
Zeig mal dein JavaScript.

Hier gibt es ein Beispiel für ein ServerControl.
http://alfablog.zytes.de/?p=6

26.06.2007 - 23:24 Uhr

Wenn du einen richtigen Postback anschließend machen würdest wäre das Panel auch sichtbar 😉

Das liegt daran, das dein Panel pnlTest nicht in dem UpdatePanel enthalten ist.
Es wird nur der Teil der Seite neu gezeichnet welcher in dem UpdatePanel enthalten ist. Gibt 3 Möglichkeiten: Du verwendest keine Ajax, du packst dein pnlTest in das UpdatePanel oder du schreibst ein JavaScript mit dem du das Panel ein und ausblendest.

Für letzteres müßtest du in der btnTest_Click Methode mit ScriptManager.RegisterClientSript dein Javascript einschleusen damit das auch ausgeführt wird wenn Javascript dein UpdatePanel-Bereich in der Seite neu zeichnet.

Wenn diese Positionierung von pnlTest wirklich so gewünscht ist in der Seite, könntest du letzte Methode verwenden oder du verschiebst pnlTest in den UpdatePanel und positionierst es mit CSS an die gewünschte Position. Hier mußt du allerdings noch aufpassen. Bei mir war mal der Fall, wenn ich ein Panel von Anfang an Visible false setzte und es in einem UpdatePanel ist, wird beim Setzen auf Visible true das Panel nicht gezeichnet. Bin mir nicht sicher ob das ein Ajax Problem ist, oder nur bei meiner Konstelation ein Problem war. Hab mir dann ein Panel-Control gebaut, welches die Visible Eingenschaft durch eine CSS Eigenschaft "Display:none" ersetzt. D.h. beim Rendern wird immer das Panel in HTML Code übersetzt, aber ist halt über CSS ausgeblendet.

Möchtest du pnlTest von mehreren UpdatePanels aus aktuallisieren bleibt nur letzte Methode übrig.

So doll das Ajax auch ist, bei pixelgenaues Design kanns richtig umständlich werden wenn der Inhalt eines UpdatePanels sich auf verschiedene Bereiche in der Website dargestellt werden soll.

18.06.2007 - 19:24 Uhr

Eigentlich genauso wie Clients auf Methoden des Servers zugreifen.

Du Schreibst eine Klasse Client. Die muss ein bestimmtes Interface IClient implementieren. Da sind dann Methoden wie wie z.B. 'DataChanged()' enthalten.

Meldet sich der Client am Server an, gibt er eine Reference auf sich mit.
z.B. IServer.Connect(IClient client).

In der Liste speichert der Server die Referencen der Clients beim Anmelden.
Ändert ein Client Daten, z.B. ChangeData(IClient sender, MyData data)
dann weiß der Server wer Daten ändert. Du gehtst dann die Liste durch und rufst die MEthode DataChanged aller CLients auf. Über ne If Abfrage kannst du den Sender ja überspringen.

18.06.2007 - 18:54 Uhr

Danke für deine Antwort.

Ich habe wirklich Stunden geprüft, getestet und gedebuggt. Keine Antwort auf das Problem gefunden.

Warum 2 Connection-Objekte.
Es sind halt 2 Klassen mit je einem Connection-Objekte. Der Anwendungsfall benötigt halte beide Funktionalitäten. Die beiden Klassen laufen auch in verschiedenen Threads.

Es kam vor, das beide Connection-Objekte gleichzeitige eine DB-Anfrage gestartet haben.

Vielleicht gibts da ja im .Net-Framework. Keine Ahnung.

In den paar Zeilen Code und der Variablen sTableName (ist auch ReadOnly) ist eigentich kein Fehler.

Das Problem besteht nun nicht mehr. Habe das Verhalten des anderen Threads etwas geändert.

14.06.2007 - 16:20 Uhr

Hallo,

als Datenbank verwende die MSSQL2005Express Version.

In meiner Klasse habe ich folgende Methode um Daten aus der DB zu holen.

protected override void InitData()
{
dtData = new DataTable(this.sTableName);
SqlDataAdapter da = new SqlDataAdapter("select * from " + this.sTableName, new SqlConnection(sConnectionString));
da.Fill(dtData);
}

Weiterhin halte ich in meiner Klasse ein 2. SQLConnection Objekt welches in der selben DB auf eine andere Tabelle für abfragen zuständig ist.

Nun ist das Problem das beim 2. bis 3. Aufruf meiner Methode InitData plötzlich Datensätze aus einer anderen Tabelle. Genau genommen aus der Tabelle wofür ich das 2 SQLConnection-Objekt verwende.

Wie kann es dazu kommen?
Bin wirklich ratlos. Da auch bei InitData jedesmal ein neuer DataAdapter angelegt wird, mit neuem Connection-Objekt. Auch der String sTableName ändert sich nicht.
Dennoch bekomme ich falsche Datensätze.

.

11.05.2007 - 21:53 Uhr

Hallo,

ich bin auf der Suche nach einer Datenbank für Städte und Länder. Toll wäre es wenn diese kostenlos ist und der Zugriff über Webservice erfolgt.

Z.B. User gibt 'Wien' ein, und ich bekäme die Info ob es die Stadt gibt und in welchem Land die Stadt liegt.

Für meine Daten brauche ich nur Städte und Länder.

Gibt es sowas?

30.04.2007 - 20:30 Uhr

Wie kann ich mein Usercontrol über den Pagerefresh hinaus erhalten?

Hallo, ich stand vor Kurzem vor dem selben Problem.
Hier mal meine Erfahrungen.

Du musst entweder deine Controls oder deine Daten irgendwo zwischenspeichern.
Hier gibt es verschiedene Wege.

Du packst deine Controls in einem Placeholder.
Beim Verlassen der Seite speicherst du den Inhalt (ControlCollection) des Placeholders in nem Session-Objekt ab.

Bei Laden der Seite holst du dir die Session und fügst die Items der Collection wieder dem Placeholder hinzu.

Das ganze funktioniert ganz gut. Hat aber einen Nachteil. Bei deinen UserControls wird kein PageLoad mehr ausgelößt. D.h. nachdem du die Controls aus der Session wieder in den Placeholder geschoben hast, war es das. Dazu unten mehr.

Wie kommen nun deine Events dennoch an das UserControl?
Du implementierst das IPostBackEventHandler Interface. Beim wiederherstellen rufst du dann RaisePostBackEvent() auf und übergibst request.Params["__EventArgument"].

Oder du schreibst dir ein Interface mit einer Page_Load(object sender, EventArgs e).
Dann rufst du nach dem Laden (PlaceHolder.Controls.Add()) selber die Page_Load auf. Wenn die Page_Load des UserControls aufgerufen wird, sollte das mit den Events wie gewohnt klappen.

Wenn die Page_Load nicht aufgerufen wird, habe ich festgestellt, dass mehrere Dinge dann oft nicht mehr richtige gehen. Z.B. die Selection bei einem DropDownFeld.

Hier ein bischen Code


public class PostbackSecurePlaceholder : System.Web.UI.WebControls.PlaceHolder, IPostBackEventHandler
    {

    #region IPostBackEventHandler Member

    public void RaisePostBackEvent(string eventArgument)
    {
        foreach (Control co in this.Controls)
        {
            try
            {
                ((IPostBackEventHandler)co).RaisePostBackEvent(eventArgument);
            }
            catch { }
        } 	   
    }

    #endregion

        public void Store()
        {
            if (this.ID == null || this.ID.Length == 0)
                throw new Exception("Field Id is required!");

            if (Context.Session[this.ID] == null)
            {
                Context.Session.Add(this.ID, this.Controls);
            }
            else
            {
                Context.Session[this.ID] = this.Controls;
            }
        }

        public void Restore()
        {
            if (Context.Session[this.ID] == null)
            {
                //hmm
            }
            else
            {
                ControlCollection coCol1 = ((ControlCollection)Context.Session[this.ID]);
                while(coCol1.Count > 0)
                {
                    this.Controls.Add(coCol1[0]);
                }

                Context.Session[this.ID] = this.Controls;
            }
        }

        public void Restore(System.Web.HttpRequest request)
        {
            this.Restore(request.Params["__EventTarget"], request.Params["__EventArgument"]);            
        }

        public void Restore(string eventTarget, string eventArgument)
        {
            if (Context.Session[this.ID] == null)
            {
                //hmm
            }
            else
            {
                ControlCollection coCol1 = ((ControlCollection)Context.Session[this.ID]);

                while(coCol1.Count > 0)
                {
                    try
                    {
			            //Diese IfAbfrage macht nur Sinn, wenn du ein Konzept zur Id vergabe hast, ansonsten ohne diesem If.
                        if (eventTarget != null && eventTarget.IndexOf(coCol1[0].ClientID) != -1)
                        {

                            ((IPostBackEventHandler)coCol1[0]).RaisePostBackEvent(eventArgument);
                        }

			            //alternativ könnte ich mir auch sowas vorstellen (Das Interface müßte halt noch erstellt werden.
			            //Dann ersparrt man sich das RaisePostBackEvent und dann das Herausfieseln wohin das Event soll (wie oben versucht zu beschreiben).
			            //Handhabe es mittlerweilse so, ist ein bischen älterer Code hier.
			            //((IPerformPageLoadHandler)coCol1[0]).Page_Load(this, eventArgument));
                    }
                    catch 
                    {
                    }

                    this.Controls.Add(coCol1[0]);
                    
                }

                Context.Session[this.ID] = this.Controls;
            }
        }
    }




So gehst du dann damit in der Seiten-Klasse damit um


UserControls speichern
protected override void OnPreRender(EventArgs e)
{
	this.placeholder1.Store();
...


UserControls wiederherstellen
protected override void OnInit(EventArgs e)
{
	this.placeholder1.Restore(this.Request);
...


//UserControls hinzufügen
placeholder1.Controls.Add(  this.Page.LoadControl("MYControl.ascx") );




.

30.04.2007 - 10:15 Uhr

Danke für das ClearSelection().
Schon wieder eine Zeile Code gesparrt.

Problem ist auch behoben. War ein dummer Fehler von mir.
Das auslösende Event kam von einem ContextMenu. Dieses wurde von mehreren DataGridViews verwendet.
Bei der Ereignisbehandlung habe ich auf dann die SelectedRows vom falsche dgv abgerufen.

Was mich jetzt noch ein wenig wundert ist, das die Seletion bei anderen dgv auch aktiv war. Obwohl ich da garnichts geklickt habe.
Die beiden dgv hatte die selbe DataSource, eine DataView. Anscheinend wird die Selection im Objekt DataView gespeichert.

26.04.2007 - 11:39 Uhr

Hallo,

ich habe ein DataGridView. Ich weiße diesem ein DataSource zu.
Dummerweise wird immer die erste Zeile automatisch selektiert.

Da ich dies nicht haben möchte, entferne ich die Selectierung mit

foreach (DataGridViewRow r in dgv.SelectedRows)
r.Selected = false;

Nun entsteht das Phänomän, wenn man die erste Zeile makiert, ist die Makierung nicht in der dgv.SelectedRows Auflistung vorhanden.

Man muss also erste Zeile 2 makieren und dann Zeile 1 makieren. Dann ist diese in dgv.SelectedRows vorhanden.

Das Problem besteht auch nur mit der ersten Zeile des Gridviews.

Ist das ein bekanntes Problem, oder habe ich eine notwendige Handlung übersehen?

03.04.2007 - 11:38 Uhr

Hallo,

ich füge meiner Seite dynamisch Usercontrols über Page.LoadControl hinzu.

Über IPostBackEventHandler reiche ich das PostbackEvent in mein Usercontrols weiter und werte es dort aus.

Mein Problem ist, das z.B. beim ImageLinkButton keine Werte für CommandName und CommandArgument im erzeugten HTML Code hinterlegt werden.

Die Werte für das EventTarget benötigt werden fehlen und das Event kommt dann nicht im UserControl an.

Ist das ein Problem von den fertigen Microsoft-Controls?
Mache ich hier etwas falsch?

Bis jetzt mache ich das umständlich, indem ich den Wert für OnClientClick selbst mit einem JavaScript belege.

26.02.2007 - 18:15 Uhr

Wenns ganz einfach sein soll, würde ich Webservices nehmen.
Für eine bidirektionale Kommunikation würde das ganze über Corba machen.

Falls dir das nichts sagt, ist ähnlich dem .NetRemoting.

Habs zwar mit .Net noch nicht gemacht, aber ich denke da gibts schon Produkte die Bibliotheken und Tools beinhalten um die passenden Proxy-Klassen zu erstellen.

22.01.2007 - 09:18 Uhr

Hallo,

ich verwende System.Data.SqlClient.SqlTransaction.
Ich werds dann mal mit System.Transactions versuchen.

Das seltsamme ist wirlich, das dieses Vorgehen bis vor einer Weile noch funktioniert hat. Die Datenbank war zwischenzeitlich auf einem anderen Server. Kann es an Einstellungen des DB-Servers oder der Datenbank liegen?

Nachtrag:
leider kein Erfolg. Ich vermute mal da hat der SQL Server irgendein Problem.

18.01.2007 - 21:13 Uhr

Dein Code funktioniert wahrscheinlich nicht, da die ClientId sich von deiner ID "HiddenField1" unterscheidet.

Ich würde kein ASP Control verwendet, sondern ein standard HTML Control. Bei letzterem legst du die Id welche im HTML-Code steht fest.

.

18.01.2007 - 21:05 Uhr

Hallo,

es handlet sich um einen SQL-Server.

SCOPE_IDENTITY() hatte ich schon versucht, leider ohne Erfolg.

Ich habe mal zum Spaß die ganze SQL Abfolge direkt in der SQL-Console vom SQLServer-Manager eingegeben.
Da hat es funktioniert.

Ich verzweifle noch. Bei anderen Anwendungen hat das immer funktioniert, die LastInsertId in einer Transaktion abzufragen.

Kann es sein, dass irgendein Trigger vom SQL Server nicht kommt, bzw. das die Abfrage zu schnell nach dem Insert statt findet?

.

16.01.2007 - 20:43 Uhr

Hallo,

ich habe ein echt seltsammes Problem.
Ich führe mehrere DB-Aktionen in einer Transaktion aus.

In einer Schleife werden ständig Insert-Commands ausgeführt und anschließend ein "Select @@Identity".

Mein Problem ist, wenn ein "Select @@Identity" ausgeführt wird, alle weiteren Insert-Befehle immer wieder die in die selbe Zeile in der Tabelle schreiben. Natürlich ist die neue LastInsertId wieder der Wert wie bei der ersten.
In der Tabelle steht zum Schluss die Werte des letzten Insert-Befehls aus der Schleife.

Begin Transaction

Insert into A ... value = 100...
Select @@Identity -> gibt mir z.B. 10

Insert into A ... value = 200 ...
Select @@Identity -> bringt wieder die 10 zurück

Transaction.Commit()
...

Select * from A where... -> Ergebnis ist der letzte Eintrag, im Bsp. die 200.

An was könnte das liegen?
Frage ich nicht die LastInsertId ab, funktioniert alles.

.

15.12.2006 - 09:51 Uhr

Danke.
Wer das mit den Variablen mal probieren.

Ja, die Queries werden im Code zusammen gebaut. Ich hatte vorher diese Problematik auch mit 2 oder mehreren Abfragen hintereinander gelößt.

Nur war die Performance einfach misst. Habe festgestellt wenn ich die Komplexität in den SQL Server ausagere, eine deutlich bessere Gesamtperformance erhalte.

13.12.2006 - 08:01 Uhr

Das mit der View habe ich schon probiert, allerdings läßt der mich keine Views mit Parameter speichern.

Geht das mit den Variablen nur bei Prozeduren oder auch normalen SQL Abfragen?

12.12.2006 - 17:33 Uhr

Hallo,

ich habe in meinem Select mehrere Case Abfragen drinn.
Ist es möglich den Wert in 'Case' in der Then oder Else noch mal zu verwenden?

CASE (SELECT lange Abfrage) is null then 'text' else (SELECT lange Abfrage) end AS Spaltenname

So würde doch die Select-Anweisung 2 mal ausgeführt werden, d.h. einmal umsonst.

.

30.11.2006 - 08:59 Uhr

danke

27.11.2006 - 17:42 Uhr

ich bin mal so unverschämt und schiebe diese Frage noch mal nach oben 😁

Weiß keiner eine Lösung?

.

13.11.2006 - 14:56 Uhr

Hallo,

ich logge einen User so aus
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();

Für den Login verwende ich das LoginControl.

Wie bekomme ich das hin, das nicht auf die ReturnURL welche in der Query automatisch mitgliefert wird, zurück geleitetet wird?

Ich hab schon versucht die Query-Auflistung zu löschen, aber diese ist ja schreibgeschützt.

.

26.10.2006 - 21:53 Uhr

Hallo,

gibt es die Möglichkeit einzelne Seiten aus der Authentifizierung auszuschließen?
Dieses möchte ich gerne in der web.config angeben.

.

14.10.2006 - 20:05 Uhr

Danke, mit der Semaphore ManuelResetEvent konnte ich das lösen.
War nur etwas tricky die Startzustände festzulegen, da nicht vorherzusagen war welcher Thread zu erst gestartet wird und beide gleichberechtig sind.

14.10.2006 - 15:04 Uhr

Hallo,

ich hänge eigentlich vor einem einfachen Problem.
Ich habe in einem Objekt 2 laufende Threads.

T1 darf nur arbeiten wenn T2 einen definierte Position erreicht hat.

Ich dachte mir das so, T1 setzt ein Flag.
T2 wertet bei jedem Durchgang dieses Flag aus und setzt sich auf sebst gegebenenfalls auf Suspend.

T1 wartet bis T2.ThreadState Suspend ist und setzt seine Arbeit fort.
Ist T1 fertig, Resumed er T2.

Nu bekomm ich aber die Fehlermeldung das Resume von T1 aus nicht möglich ist, da T1 dieses nicht auf Suspend gesetzt hat.

Wie gehe ich da am besten vor?

12.10.2006 - 22:06 Uhr

Hallo,

ich versuche folgende Struktur in die app.config zu bekommen.

<Items>
<Item Name="Item1" Prop2="..." Prop3="...">
<Item Name="Item1" Prop2="..." Prop3="...">
<Item Name="Item1" Prop2="..." Prop3="...">
</Items>

Wie muss ich da vorgehen?
Ich habe eine SectionGroup "Items" definiert und eine Sektion "Item".
Nur funktioniert das anscheinend nicht bei mehreren Einträgen von Item.

.

03.10.2006 - 18:16 Uhr

Wie schon geschrieben, der ViewState bezieht sich auf die Controls die das DataGrid erzeugt. Also die Labels und Textboxen usw.

Deshalb werden die Daten welche das GridView visualisiert, nach einem Postback wieder angezeigt, wenn du am GridView nichts machst.

Deshalb meinte ich ja, die Property und deren Bedeutung ist etwas irreführend.

02.10.2006 - 21:40 Uhr

Also ich sehe da 2 Probleme.
Du musst die ID deines Buttons clientseitig irgendwie herausbekommen.
Du musst die aktuelle Breite nach einem Postback wieder setzten.

Da die tatsächliche Id ja berechnet wird, musst du dir da was einfallen lassen. Das einfachste ist, du wählst einen markenten String und suchst durch deine Inputcontrols.

getElementsByTagName('input') -> und dann dein Array durchackern und den Teilstring suchen .

So, damit nach nem Postback dein Button nicht wieder die im Code definierte Größe bekommt, speicherst du per Javascript den Wert in ein HiddenField.
Im Servercode kommst du ja an dieses HiddenField, nimmst den Wert und setzt deine Breite im Button.

.

02.10.2006 - 21:21 Uhr

Darf man hier in deinen Grundlagen Thread Antworten geben? 😁

In der Tat finde ich die ViewState Eigenschaft bei den Datencontrols auch irreführend. Warum die Daten erhalten bleiben denke ich liegt darin, das die Controls die letztendlich die Daten darstellen diese behalten. Also die Labels und Textboxen oder Tabelle die das Datagrid zeichnet behalten ihre Werte über den Postback. Das Gridview selber hat keine Daten mehr.

Wobei das bei der Table ansonsten ja nicht funktioniert 🤔

.

01.10.2006 - 23:01 Uhr

Ich hatte ein ähnliches Problem und konnte keine Lösung finden.

Ne App lief in ner ganzen Firma, nur auf einem Rechner wollte es nicht so recht.
Hab dann Windows neu installiert und schon gings 😁

Ok, der Beitrag hilft dir jetzt aber sich nicht weiter...

.

16.09.2006 - 02:58 Uhr

Ja das ist leider so. Beim Mozilla ist eine Höhenangabe erforderlich.
Am besten du gibst den Buttons noch die Höhe 100% mit, dann richten die sich nach deinem Rahmen unabhängig vom Windows-Sytle wie die Controls dargestellt werden.

11.09.2006 - 15:03 Uhr

keiner eine Idee ?

05.09.2006 - 14:20 Uhr

Hallo,

ich habe ein RegularExpressionValidator. Ich möchte das der folgendes tut,

/[()&lt;&gt;,;:\/&quot;[]%]|0x/

und das als ClientScript.
Wenn ich das in das Feld ValidationExpression setzte, kommt in der HTML Ausgabe zu jeden BackSlash noch 2 weitere dazu.
Lasse ich den BackSlash weg, bleibt der auch in der HTML Ausgabe weg.
Wie auch immer, funktioniert der Ausdruck nicht.

Vielleicht weiß jemand was ich in das Feld ValidationExpression schreiben muss, damit oben genannter Ausdruck über Javascript überprüft wird?

Ich werd noch bekloppt.

04.09.2006 - 21:30 Uhr

Beim Logging sehe ich das auch wie Programmierhans.
Das ganze in eine eigene DLL und dann statische Funktionen. Die Konfiguration (Speicherort usw.) als extra Datei im Verzeichnis wo die dll liegt.

Jetzt müßte man sich nur noch kümmern, das die für deine Anwendung nur einaml geladen wird die dll, falls man in eine Datei schreibt.

04.09.2006 - 09:30 Uhr

Hallo,

ich möchte ein Webprojekt auf dem IIS debuggen (VS2005, ASP.net 2.0).
Nur geht das leider nicht. Nach der Ausführung steht bei den BreakPoints "Debugsymbole nicht geladen".

Beim integrierten Webserver der sonst jedesmal von VS 2005 gestartet wird, klappt das debuggen.

Was muss man hier alles einstellen?
Auf dem Ordner im Filesystem sind die Rechte für Debuggbenuter und Developer vorhanden.
In der ASP.Net Konfiguration über die Verwaltung ist der Hacken bei Debuggen gesetzt.
Bei den Startbedingungen in VS2005 ist der Hacken bei Debugger "ASP.NET" auch gesetzt.

Bin am Verzweifeln...

23.08.2006 - 11:30 Uhr

Ich denke mal, du müßtest erst das neue Fenster öffnen und dann die aspx Seite ausführen. Für strCreatedFile1 kannst du ja einen Parameter in der URL mitgeben.

23.08.2006 - 11:25 Uhr

klingt sehr verwirrend.

Vermutlich wirst du dir was schreiben müssen, welches dir deine Styles in ein css Format ausgibt. Diese Ausgabe fügst du entweder direkt in den Quelltest oder in eine externe .css Datei ein.

Bisla Pseudo Code:
<% StyleBock %> in der aspx Seite

...

StyleBock += ".Text {" + myStyle1.ToString() + "}";
StyleBock += ".Link {" + myStyle2.ToString() + "}";
...

Label1.CssClass = "Text Link";

14.08.2006 - 10:21 Uhr

Ich habe mir die Seite mal kurz angesehen.

Also die Bilder werden in beiden Seiten komplett geladen, da sich diese auch im Quelltext befinden. Um dies zu ändern, müßtest du die Bilder per JavaScript laden.

Im Allgemeinen ist es eh ein Unding, für jeden Kontakt so ein umfangreiches HTML Konstrukt mit Tabelle und Ebene zu erstellen. Wenn die Zeit noch bleibt, gestallte dies vielleicht etwas anders, das du nur ein Bereich für den Kontakt hast, und die Daten also Objekt bzw. als Parameter übergibst. Auch wäre es nett, nicht wieder nach unten scrollen zu müssen, wenn eine Person weiter unten in der Liste ausgewählt wurde.

20.07.2006 - 13:11 Uhr

Wenn du einen Namen für die Seite vergibst, dann wird immer wieder dasselbe Popup verwendet. Vorteil wäre hier das es immer nur einmal dieses Fenster existieren kann, Nachteil ist allerdings das das Fenster ohne Warnung mit neuem Inhalt geladen wird.

Also anstelle von '_blank' ordentlichen Namen wählen.

Das Schließen kannst du auch über JavaScript abfangen.
Entweder in deiner Ausgangsseite die Referenc auf das Popup speichern und das OnUnload Event registrieren.

win= window.open(...);
win.onunload = DeinFensterWirdBeendet;

function DeinFensterWirdBeendet()
{
//hier halt ein PostBack durchführen
__doPostBack(eventTarget, eventArgument)
}

Oder du greifst vom Popup auf dein Parent zu.
onunload="opener.DeinFensterWirdBeendet()

.

19.07.2006 - 11:25 Uhr

Das ganze musst du anders aufbauen.
Statt dem Linkbutton nimmst du einen Hyperlink.
Dieser öffnet über JavaScript ein Popup.

Hier kannst du direkt das File als URL angeben, oder falls noch Arbeiten zu erledigen sind, eine Site mit Übergabeparameter für das File bzw andere Daten um das File bereit zu stellen. Ausgeben kannst du das dann mit Response.WriteFile(fileName);

19.07.2006 - 10:36 Uhr

Hallo,

ich habe ein wirklich seltsames Problem.
Für eine Webseite benutze ich das Forms Authentication in der Web.config.
Auf dem Entwicklungsrechner und auf einem Zielsystem funktioniert das auch.

Jetzt wollte ich auf einem weiteren W2003 Server die Website installieren, aber das Authentication funktioniert nicht mehr.

Nach einem erfolgreichen Login, werde ich immer wieder auf die Loginseite weitergeleitet. Die Übergabe URL usw. stimmen auch. Die Webserver-Einstellungen sind auch die gleichen wie auf dem anderen Zielsystem.

Ist jetzt sicherlich schwer hier das Problem einzugrenzen, aber vielleicht hat ja jemand ein ähnliches Problem gehabt.

Zielsystem ist ein W2003Server, IIS 6.0 und .Net 1.1.

.

02.07.2006 - 22:06 Uhr

Hallo,

ich habe ein Verständnisfrage.
In dem DataList Control kann ich ein ItemTemplate festlegen. Hier habe ich einige Label-Controls drinn und über Container.DataItem.Feld hole ich mir die Werte. Über DataSource weise ich die Daten zu.

So, nun gehen nach einem PostBack alle Daten verloren. Liegt wohl an dem DataSource Konzept.

Lager ich den Inhalt des ItemTemplate (also die LabelControls) in ein seperates UserControl aus und definiere in dem ItemTemplate nur das Usercontrol, bleiben nach dem PostBack die Daten erhalten.

Warum?
Da das DataList ja neu Rendert, keine Daten im DataSource hat, woher kommt dann die HTML Ausgabe?

Meiner meinung nach hat man sich es bei vielen Controls recht einfach gemacht. Man müßte ja die Daten parallel in der Session behalten oder jedesmal einen Datenbankaufruf starten, nur nach nem PostBack. Beim DataList wird so wie ich das sehe auch kein Paging unterstüzt, wo es evtl. Sinn hätte machen können. Aber das ist ein anderes Thema.

13.06.2006 - 21:05 Uhr

Hallo,

pack in die 3 PlaceHolder einfach 3 IFrames.
Vorteil, die von dir gewünschte Funktionalität ist vorhanden
Nachteil, sollen bei einem PostBack Controls aus unterschiedlichen Frames geändert werden, wirds sehr umständlich.

13.06.2006 - 00:19 Uhr

Wo hängst denn genau?

Den IIS brauchst du, so wie ich verstanden habe, anfangs garnicht. VS sollte wenn 'Standard' eingestellt ist, einen eigenen Webserver starten.

12.06.2006 - 23:15 Uhr

Ne leider nicht, handelt sich um ein eigenes WebControl welches ein paar DropDownListen beinhaltet.

Ich hätte zwar eine Lösung gefunden, aber besonders schön ist die nicht. 😁
Man erweitert das EventArgument für den PostBack und fügt den SelectedIndex schon beim Client hinzu.


string clientScript = Page.ClientScript.GetPostBackEventReference(this, "eventArgument");
clientScript = clientScript.Insert(clientScript.LastIndexOf('\'')+1, "+'#'+this.selectedIndex");
dropDownControl.Attributes.Add("onchange", clientScript);

Im RaisePostBack EventHandler muss man des wieder an der Stelle '#' zerpfücken und schon hat man den SelectedIndex.

Das einfachste wäre, man könnte die DropDownList in den ViewState legen, nur bringt da VisualStudio eine Exception das DropDownList als nicht serializierbar makiert ist. X(

.