Come posso creare una casella di testo di Sharepoint (input, type = text) dynamicmente multilinea?

Voglio una casella di testo sulla mia web part che crescerà verticalmente su richiesta. Cioè, sarà una riga a meno che l’utente non inserisca troppo testo per quella linea, a quel punto la parola si avvolge e cresca verticalmente per adattarsi alla verbosità dell’utente.

Sto creando i miei controlli / elementi in modo dinamico e creo questo elemento in questo modo:

boxPaymentExplanation = new TextBox() { CssClass = "dplatypus-webform-field-input" }; boxPaymentExplanation.Width = 660; boxPaymentExplanation.Style.Add("display", "inline-block"); 

Ho provato ad aggiungere questa linea, nella speranza di ottenere questa funzionalità:

 boxPaymentExplanation.Style.Add("TextMode", "MultiLine"); 

… ma non modifica in modo evidente il comportamento della casella di testo: posso inserire del testo “finché i bovini non tornano nella stalla”, ma continua semplicemente ad aggiungere i caratteri alla fine della casella di testo su una singola riga. Non si avvolge mai, quindi non cresce mai.

AGGIORNARE

Questo è il jQuery che funziona (derivato dal link fornito da Christopher Jennings):

 $(document).on("keyup", "[id$=explainPaymentTextBox]", function (e) { while ($(this).outerHeight() < this.scrollHeight + parseFloat($(this).css("borderTopWidth")) + parseFloat($(this).css("borderBottomWidth"))) { $(this).height($(this).height() + 1); }; }); 

… insieme a questo C #:

 boxPaymentExplanation = new TextBox() { CssClass = "dplatypus-webform-field-input", ID = "explainPaymentTextBox" }; boxPaymentExplanation.Width = 660; boxPaymentExplanation.Style.Add("display", "inline-block"); boxPaymentExplanation.TextMode = TextBoxMode.MultiLine; 

AGGIORNAMENTO 2

Sfortunatamente, sebbene la jQuery di descent-in-the-mElström-esque sopra funzioni per far crescere dynamicmente la casella di testo, non funziona se l’utente rimuove il testo; Vorrei anche ridurmi quando succede …

Sei sulla strada giusta. È necessario impostare la proprietà TextMode su Multiline. Tuttavia, l’approccio che hai scelto è quello di aggiungere un attributo di tag HTML piuttosto che impostare la proprietà .NET. Basta sostituire boxPaymentExplanation.Style.Add("TextMode", "MultiLine"); con boxPaymentExplanation.TextMode = TextBoxMode.MultiLine;