Laden...

Eigenes Webcontrol - Formatierung

Letzter Beitrag vor 18 Jahren 7 Posts 1.528 Views
Eigenes Webcontrol - Formatierung

Hallo Leute, ich hab bis jetzt nichts zu diesem Thema im Forum gefunden, bzw nicht das richtige.

Mein Problem besteht darin, dass ich ein eigenes Webcontrol entwickeln will, dass es ermöglicht einen Text mit Zusammenfassung und Titel zu speichern (also 3 Textboxen).
Jetzt möchte ich das die Labels (Beschreibung der Textboxen [Titel, Zusammenfassung, etc]) und die Textboxen in einer tabellarischen Form angezeigt werden.

Also:

Titel:..........................[Textbox]
Zusammenfassung:.....[Textbox]
Inhalt:........................[Textbox]

Ich könnte jetzt die Render Methode überschreiben und alles in eine Tabelle packen (Table Control). Aber ich würde das gerne mit DIVs lösen - die Diskussion warum DIVs anstatt Table möchte ich hier aber nicht aufleben lassen 🙂 - weiß aber nicht wirklich wie ich das machen soll. Gibt es generell eine gute Anleitung für die Webcontrolentwicklung? Gerade bezogen auf den Aufbau des Controls.

Zur Zeit weiß ich nicht wirklich wie ich das "schön" lösen könnte. Für ein paar gute Links wäre ich dankbar - aber natürlich auch für ein paar Vorschläge 🙂.

Vielen Dank im Voraus
lg
Bakunin

PS: Wenn es möglich ist, möchte ich nicht umbedingt einen HTML Code in die Render Methode übernehmen (Außer das wäre Standard).

Also ich hab mal weiter gesucht im Netz aber ich finde nichts brauchbares. Komisch eigntlich, hab gedacht zum Thema Webcontrol developing gibt es gute HowTos... naja bei denen Sites die etwas mit dem Thema zu tun hatten bin ich immer wieder auf Tables gestoßen.

Gibt es wirklich keine andere Möglichkeit die ChildControls im Control selber anzuordnen?

lg
Bakunin

Hmm verstehe nicht ganz Deine Frage.

<div>

Controls reinziehen, bissle verschiebne bis es passt und fertig.

Geht mit VS 2005 ohne probs

Hallo Ifoko,

gibt es einen Designer für die Webcontrolentwicklung? Also ich möchte im Control selber <div> Controls verwenden.

Also nochmal, falls ich mich unklar ausgedrückt habe. Ich möchte ein Webcontrol entwickeln. In diesem Webcontrol werden 3 Textboxen und 3 Labels verwendet. In der CreateChildControls Methode mache ich es bis jetzt so, dass ich ein Tabel Control erstelle. Diese Table hat 2 Spalten, links liegt immer ein Label, rechts eine Textbox. Da ich meine aber, dass Table nicht für das Layout verwendet werden soll, würde ich es eben gerne anders lösen.

Und darum hätte ich gerne ein paar Links mit Anleitung zur Webcontrolentwicklung. Also was ist der beste Weg etc. Die Sites die ich bis jetzt gefunden habe, verwenden auch alle Tables um die ChildControls in ihrem eigenen Control wie gewünscht anzuordnen.

Bleibt die Frage, ob das so ok ist, oder eben nicht? (Wie gesagt Table sollte doch normalerweise nicht fürs "layouten" verwendet werden?)

lg
Bakunin

Du brauchst lediglich diese Struktur...


<div>
    <div style="float:left;width:120px">Titel:</div><div><input /></div>
    <div style="float:left;width:120px">Zusammenfassung:</div><div><input /></div>
    <div style="float:left;width:120px">Inhalt:</div><div><input /></div>
</div>

Dabei würde der äussere DIV-Container dann Dein eigentliches Control repräsentieren.
<input> ist das native HTML-Element zu "Textbox".
Du kannst natürlich auch "Textbox" verwenden - aber da Du ja sicher auch einen einheitlichen ViewState bzw. einheitliche Ereignisbehandlung haben möchtest, würde ich Dir raten, dass komplett selbst zu implementieren, da Du dabei auch sehr viel über die Control-Entwicklung/Funktionart lernst.

Dazu musst Du die Schnittstelle IPostBackDataHandler mit den Methoden LoadPostData und RaisePostDataChangedEvent implementieren, und die Methoden LoadViewState und SaveViewState überschreiben.
Dann überlegst Du Dir noch einen passenden Event-Namen, und schreibst Dir ein Control, dass selbst Ereignisse auslöst und seinen Zustand verwaltet.

In der MSDN findest Du zu allen Methoden hervorragende Beispiele.

Grüsse

Es gibt in VS 2005 einen Designer für "Web User Controls" -> .ascx Dateien.
(Rechte Maus auf Projektordner, Add New Item, Web User Control)

Wie mein Vorgänger sehr gut beschrieben hat, kann man da mit Designer und Drag & Drop arbeiten.
Dann bekommst eine acsx Datei (die kannst dann sogar auf die Toolbox ziehen) mit der man wie ein ganz normales Control arbeiten kann.

lg

(Es gibt leider keine brauchbare Hilfe zu User Controls, etwas in der MSDN, das wars aber auch schon)

Danke an euch beide, werde mir heute das ganze genauer ansehen. Werd mal die MSDN zu den genannten Methoden mal durchstöbern.

lg
Bakunin