SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Breite eines Nachschlagefelds / Width of Lookup Field

Unbeantwortet Dieser Beitrag hat 10 Antworten

Ohne Rang
242 Beiträge
Peter Oswald erstellt 10 Jan. 2013 14:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

was ist eigentlich das "best practice" für dieses leidige Thema

  • ich habe ein Nachschlagefeld mit Mehrfachauswahl, doch die Texte sind in den Auswahlboxen nicht vollständig sichtbar. Wie kann ich im Formular die Breite von dem Nachschlagefeld verändern.

Geht das echt wegen dieser inline-Formatierung nur so

http://dwayneramsey.blogspot.de/2009/12/expanding-lookup-field-width.html

oder ähnlich?

VDiV
Celo  )der keine scripting-workarounds im design haben will :-(

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Jan. 2013 14:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist aber trotzdem der einzig sinnvolle Weg. Also per JavaScript die Breite neu zuweisen. Warum schmeckt Dir das nicht?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 10 Jan. 2013 14:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

nun, ja, warum schmeckt dem Kind der Spinat nicht? Er schmeckt halt nicht! :-)

Aber warum sinnvoll? Meinst du sinnvoll im Sinne von 'für uns Entwickler sinnvoll, weil's halt nicht anders geht" oder "generell sinnvoll solche Dinge per js zu lösen"?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Jan. 2013 14:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Im Sinne von "einzige Möglichkeit mit vertretbarem Aufwand"

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 10 Jan. 2013 14:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

mein Aufwand ist schon zu groß, da es mir gerade nicht gelingen will, den java-code richtig in mein webpart hineinzufriemeln. Kommt der Code zur Ausführung, meldet er immer, dass er kein gültigen Objekt hat. Genügt es nicht, den code in der .ascx mit aufzunehmen? Dort müsste er doch eigentlich hinein, wenn ich ein VisualStudio-Webpart baue, oder nicht :-?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Jan. 2013 16:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der Code muß jedenfalls hinter das Formular. Und der Code benötigt jQuery. Hast Du das auch eingebunden? Und natürlich muß der Feldname passen. Im Beispiel ist das "mylayoutfiled".

Aber wenn Du das eh schon mit Visual Studio machst, solltest Du eigentlich ganz andere Möglichkeiten haben und damit auch das verhaßte JavaScript umgehen können. Da müßte man aber mehr darüber wissen, was Du da machst.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 11 Jan. 2013 09:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

ok, die Voraussetzungen sind gegeben. Feldname passt auch. Und was ich da machen möchte ist lediglich, ein Auswahlfeld, das als FormField im eigenen UserControl eingebunden wird in der Breite zu formatieren. In der .ascx-Datei steht dazu

<table border="0" cellspacing="0" width="100%">
 <tr>
  <td width="190px" valign="top" class="ms-formlabel">
   <H3 class="ms-standardheader">
    Ware
   </H3>
  </td>
  <td width="400px" valign="top" class="ms-formbody">
   <SharePoint:FormField runat="server" id="ctrlWare" ControlMode="New" FieldName="Ware" __designer:bind="{ddwrt:DataBind('i',concat('ctrlWare',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Ware')}"/>
  </td>
 </tr>
</table>

Ich habe auch schon versucht, im Page_Load oder im OnInit-Event die DisplaySize anzupassen. Aber alles ohne Erfolg. Die Breite von "ctrlWare" bleibt die Originalbreite. DisplaySize im Designer anzupassen bringt ja nix, da die von der Inline-Formatierung von Sharepoint wieder zurückgesetzt wird.

Und wenn Du sagst, im VS hätte ich da noch ganz andere Möglichkeiten, dann fällt mir im Moment nur ein, dass ich den Konstrukt manuell nachbauen könnte, aber das wäre nun wirklich die letzte Option.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Jan. 2013 09:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der ganze XSL-Code, den Du vermutlich aus SharePoint Designer "geklaut" hast, wird in diesem Zusammenhang eh nicht funktionieren.

Ich würde es so machen: hole Dir das Feld aus der zugehörigen Liste:

SPList list = web.Lists["Liste"];
SPField field = list.Fields["Field"];

SPField hat eine Eigenschaft "FieldRenderingControl", die das Control liefert, das zum Feld gehört. Es ist abgeleitet von BaseFieldControl und Du kannst dort viele Eigenschaften setzen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 11 Jan. 2013 10:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

@Andi:

Vom SPD geklaut ist lediglich das DataBinding. Solange du die Zuordnung zum ControlNamen richtig machst, funktioniert das schon.

Das mit dem SPField kann ich mal versuchen, vielen Dank.

Ohne Rang
49 Beiträge
KlausBergmann Als Antwort am 11 Jan. 2013 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

Ich habe im SPD ein neues "New" und "edit - Formular" erstellt. Das entsprechende Feld markiert und wie du schon beschrieben hast die DisplaySize geändert. Vor der Änderung der DisplaySize musst du noch "InDesign" auf True setzen.

Bei Verwendung des Cascading - Lookup werden, ohne Angabe von DisplaySize, die Nachschlagespalten auf die Feldbreite des längsten Eintrags gesetzt.

Gruß Klaus

Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 11 Jan. 2013 10:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

@Klaus

das gilt meines Wissens (und probierens) nur für die Variante mit den DropDown-Feldern. Wenn ich das Szenario auf ein Nachschlagefeld anwende mit Mehrfachauswahl dann bleibt die Breite der beiden Controls links und rechts von den Buttons gleich.