DataList - Si può fermare l'ultima interruzione di linea in modo un controllo scorrerà vicino alla fine

StackOverflow https://stackoverflow.com/questions/704837

  •  22-08-2019
  •  | 
  •  

Domanda

Ho un DataList, che è impostato per flusso orizzontale che rende una serie di caselle di controllo. Ho anche un elenco a discesa, che vorrei essere reso alla fine del DataList, sulla stessa linea, come l'ultima volta nel DataList verso il basso.

E 'possibile sbarazzarsi dell'ultima interruzione di riga alla fine del DataList in modo che la discesa non rende sulla linea sotto il datalist?

[] i1 [] i2 [] i3 [] i4
[] i5 [] i6 DropDownList
È stato utile?

Soluzione

Temo di no. Il codice di rendering per la RepeatInfo (che viene utilizzato per rendere il DataList) scrive esplicitamente un'interruzione di linea quando un layout è impostato a flusso orizzontale ed un elemento è su un limite di colonna o l'ultimo della lista. Ecco che una parte di codice:

private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl)
{
    ...
    if (indexInColumn == repeatColumns || itemIndex == repeatedItemCount - 1)
    {
        if (isTableLayout)
        {
            writer.RenderEndTag();
        }
        else if (repeatColumns < repeatedItemCount)
        {
            if (this.EnableLegacyRendering)
            {
                writer.WriteObsoleteBreak();
            }
            else
            {
                writer.WriteBreak();
            }
        }
        indexInColumn = 0;
    }
}

Credo che si potrebbe tentare di iniettare l'elenco a discesa in una collezione di controllo quando un elemento viene creato o legato, ma poi ci si deve sapere che è un ultimo. Ciò richiede la conoscenza conteggio totale in anticipo, prima di fare il binding dei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top