konto usunięte

Temat: Dynamiczne kontrolki

Mam pewną ilość danych zebranych z formularza. Na ich podstawie muszę wygenerować odpowiednie kontrolki na stronie. Robię to poprzez placeholder.add.controls(kontrolka). Jednak nie mam tutaj możliwości formatowania położenia tych nowych kontrolek itd. W jaki sposób mogę mieć "władzę" nad rozmieszczaniem nowych kontrolek?

jak to wygląda: użytkownik wybiera rodzaj pytania (jednokrotny i wielokrotny wybór) i ilość odpowiedzi. Klika przycisk dodaj pytanie. I ma się wyświetlić edytor do wpisania pytania i odpowiedzi. Czyli jakieś radioButtony i textboxy.
\

konto usunięte

Temat: Dynamiczne kontrolki

Przy pomocy CSS'a.

konto usunięte

Temat: Dynamiczne kontrolki

można prosić jakiś przykład??
Umieścić placeholder mogę np w jakimś wierszu tabeli i tutaj stylowanie się kończy, ponieważ mogę użyć funkcji add.controls, a funkcja ta dodaje je obok siebie, lub pod sobą jeśli się kończy wiersz.
Chciałbym zrobić tak:
:Label z informacją
:multiline textbox na treść pytania
parametr odpowiedzi i w zależności od niego odpowiednia ilośc wierszy składająca się z
:radiobutton:textbox

Mogę to dodać jak robię do tej pory, lecz jest to uciążliwe i napewno się "rozjedzie" w różnych przypadkach

konto usunięte

Temat: Dynamiczne kontrolki

Kazdy element html może być też kontrolką.
Najpierw formatujesz sobie elementy w HTML, potem taki układ dodajesz dynamicznie.
Możesz to zrobic też tak, że tworzysz User Control odpowiedno formatowany i jego umieszczasz dynamicznie.

Przykład dynamicznych kontrolek w elementach div.

foreach (var columnElement in elements.Elements("Content").Elements("PlaceHolder").Where(a => a.Attribute("ControlId").Value.Contains("table1")).First<XElement>().Elements("Column"))
{

HtmlGenericControl div = new HtmlGenericControl("div");
div.Attributes["style"] = "float: left; height: 60px; padding: 5px;";

Label label = new Label();
label.Text = columnElement.Attribute("Name").Value + "<br/>";

div.Controls.Add(label);

if (columnElement.Attribute("Type").Value == "T")
{
TextBox tbx = new TextBox();
tbx.Width = 120;
tbx.ID = "field" + fields.ToString();
div.Controls.Add(tbx);

}
else
{
DropDownList ddl = new DropDownList();
ddl.ID = "field" + fields.ToString();
//ddl.Width = 120;

foreach (var valueElement in columnElement.Elements("Value"))
{
ddl.Items.Add(valueElement.Value);
}

div.Controls.Add(ddl);

}
ContentPlaceHolder.Controls.Add(div);
fields++;
}

konto usunięte

Temat: Dynamiczne kontrolki

hmm troszke mi rozjaśnia, czy w moim przypadku (zakładając, że max moze być 10 odpowiedzi) mogę zrobić własną kontrolkę w postaci tabelki a w niej checkboxy itd w odpowiednich wierszach i w zależności od tego ile pytanie ma mieć odpowiedzi to pojawią się odpowiednie textbocy itd w wierszach?
np max odpowiedzi to 10 więc tworzę tablkę z 10 wierszami i 2 kolumnami w pierwszej jest checkbox a w drugiej jest textbox, dodaje pytanie z 4 odpowiedziami i pokazuje 4 wiersze?

konto usunięte

Temat: Dynamiczne kontrolki

Jeżeli masz tylko dynamiczną ilość powtarzającego się elementu to łatwiej to zrobić stosująć zwykły Repeater.

konto usunięte

Temat: Dynamiczne kontrolki

co tu jest źle? wszystkie elementy są na update panel, gdy dodaję pytanie jednokrotnego wyboru kontrolka się wyświetla - gdy wielokrotnego nic się nie pojawia...
poniżej metoda


protected void dodajPytanieBut_Click(object sender, EventArgs e)
{
kontrolka = (ASP.kontrolki_pytaniek_ascx)LoadControl("~/Kontrolki/pytanieK.ascx");
Label1.Text = typPytania.SelectedItem.ToString();

if (typPytania.SelectedValue.CompareTo("Jednokrotny") == 0)
{

PlaceHolder1.Controls.Add(kontrolka);


}
if (typPytania.SelectedValue.CompareTo("Wielokrotny") == 0)
{

PlaceHolder1.Controls.Add(kontrolka);

}
}
Rafał Kiełbus

Rafał Kiełbus #blockchain
developer, #bitcoin
maximalist,
#ethereum mage

Temat: Dynamiczne kontrolki

Tu nic, ale może nie masz autopostback na wielokrotnym?

Następna dyskusja:

vs 2005 c# WinForms, standa...




Wyślij zaproszenie do