Autor Beitrag
Svenni9991
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 05.12.13 13:11 
Hallo Leute,

ich bräuchte dringend eure Hilfe.

Und zwar geht es um das Intranet. In unserem Intranet haben wir auf der Startseite unsere News.
Zur Zeit läuft es so das sich die Leute bzw. die Abteilungen bei mir melden und ich das ganze manuell in den ASP.NET-Code einfüge.
In Zukunft will ich es aber so machen das bestimmte Leute sich auf der Seite anmelden können (2 Anmeldebereiche sind schon vorhanden) und die News dann von den entsprechenden Leuten geändert/hinzugefügt werden können.
Ich habe bereits auch ein Formular aufgebaut.

Oben wird in eine Textbox das Datum automatisch eingetragen (Monat.Jahr). Danach muss der Titel eingegeben werden.
Folgend findet man das Textfeld zum eintragen des Textes. Um bestimmte Dinge hervorheben zu können habe ich mir gedacht einen Button für fett, kursiv und unterstrichen einzufügen.

Allerdings weiß ich nicht wie ich es machen soll das der markierte Text in der Textarea bei Klick auf den Button z.B. fett gemacht wird bzw davor und danach einfach nur entsprechend ein <b> bzw <b/> eingefügt wird.
Kann ich das mit ASP.NET bzw. C# machen, das ich den entsprechenden Code hinter den Button lege? Oder klappt sowas nur mit Java?
Und wenn ja, wie mache ich das dann am besten?

Ebenfalls habe ich noch ein Feld zum hochladen einer Datei eingefügt. Am Ende des Formulares soll es die Möglichkeit geben das ganze "abzuschicken" (Daten werden in eine Datenbank gespeichert, das eingefügte Bild in einen Ordner und der Pfad in die Datenbank)
oder "abzubrechen".
Wenn abgebrochen wird weiß ich jedoch nicht wie ich den Pfad der Datei aus dem Feld löschen kann. Hat da jemand einen Tipp für mich?

Hier nun der Code (ASP.NET-Datei):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
<%-- Buttons --%>
<asp:Button ID="fett" runat="server" Text="f" Font-Bold=true/>
<asp:Button ID="kursiv" runat="server" Text="k" Font-Italic=true />
<asp:Button ID="unterstr" runat="server" Text="u" Font-Underline=true />

<%-- Textfeld --%>
<asp:TextBox runat="server" ID="Text" TextMode="MultiLine" style="height:400px; width:500px; font-family:Futura Lt BT">

<%-- Fileupload --%>
<asp:FileUpload ID="FileUpload" runat="server" style="font-family: 'Futura Lt BT'"></asp:FileUpload>
<asp:RegularExpressionValidator style="font-size:small" ID="uplValidator" runat="server" ControlToValidate="FileUpload"
ErrorMessage="Folgende Formate sind erlaubt: .jpg, .jpeg, .gif & .png" 
ValidationExpression="(.+\.([Jj][Pp][Gg])|.+\.([Jj][Pp][Ee][Gg])|.+\.([Gg][Ii][Ff])|.+\.([Pp][Nn][Gg]))"></asp:RegularExpressionValidator>


Hier nun der C#-Code der bisher hinter den Buttons liegt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
    protected void Page_Load(object sender, EventArgs e)
        {
            DateTime heute = DateTime.Now;
            Datum.Text = heute.ToString("MM.yyyy");
        }

        protected void fett_Click(object sender, EventArgs e)
        { }

        protected void kursiv_Click(object sender, EventArgs e)
        { }

        protected void unterstr_Click(object sender, EventArgs e)
        { }

        protected void Dateianhang_Click(object sender, EventArgs e)
        { }
        
        protected void submit_Click(object sender, EventArgs e)
        { }

        protected void reset_Click(object sender, EventArgs e)
        {
            //Fileupload leeren
            Titel.Text = string.Empty;
            Text.Text = string.Empty;
            Kommentar.Text = string.Empty;
            ID.Text = string.Empty;
        }


Schon einmal vielen Dank für eure Hilfe

Freundliche Grüße
Svenni9991
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 05.12.13 14:45 
Hallo,

ich bin zwar kein ASP-Experte, denke aber, daß die normale TextBox keine Formatierung (fett, kursiv, etc.) unterstützt (so wie bei WinForms auch).
Du benötigst dafür dann wohl auch eine RichTextBox, wie z.B. unter RichTextbox example or sample in asp.net or ....

Wenn du jedoch wirklich nur die Formatierungs-Tags "<b>...</b>" etc. eintragen willst, dann mußt du den Text entsprechend ändern. Das Auslesen der aktuellen Selektion wirst du aber nur mit JavaScript (nicht Java!) hinkriegen, denn die Selektion ist ja client-seitig und nicht server-seitig (wo der ASP-Code läuft).
Dazu mußt du mal im Internet nach suchen "C# ASP TextBox selected text" o.ä.
Svenni9991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 13.12.13 12:34 
Hallo Th69,

danke für deine Hilfe. Die Seite die du mir geschickt hast hat mir wirklich weiter geholfen.
Aufgrund des verwendeten Java-Codes geht das aber nur in HTML und nicht in einer ASP.NET-Datei wie z.B. Default.aspx.
Aber das Problem sollte wohl irgendwie umgangen werden können/machbar sein.

Jedoch habe ich auch ein anderes Problem und zwar, wenn ich Text in das Textfeld eingegeben habe und abschicken will kommt folgende Meldung:
Serverfehler in der Anwendung /.
Ein möglicherweise gefährlicher Request.Form-Wert wurde vom Client (FreeTextBox1="Hallo,<br>dies ist ein <b>...") entdeckt.


Liegt daran das ich in das Textfeld "Hallo, dies ist ein < b >Test < / b>" geschrieben habe und er das < b > wohl scheinbar nicht erkennen will bzw. es als gefahr sieht.
Wie kann ich das Problem denn jetzt lösen?

Grüße
Svenni9991
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 13.12.13 13:40 
Hallo Svenni,

evtl. mußt du die < und > 'escapen', s. z.B. HTML Escape-Sequenzen

P.S. JavaScript (nicht Java) ;-)
Svenni9991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mo 16.12.13 10:03 
Hallo Th69,

danke noch einmal für deine Hilfe. Jetzt klingt es auch logisch für mich mit den Zeichen :)
Allerdings weiß ich nicht wie ich das jetzt am besten machen soll mit dem codieren.
Soll ich den Text auf < oder > überprüfen und dies dann austauschen oder gibt es da eine andere Möglichkeit?

PS: Ja, JavaScript, sorry. Komme da immer durcheinander bzw. kann ich es mir einfach nicht merken :D
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 16.12.13 13:44 
Ich denke, die Methode HttpUtility.HtmlEncode(...) dürfte dafür ausreichen.