Dynamiczne ID obiektów

Dynamiczne ID obiektów
KR
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:260
0

Cześć,

Mam funkcję, która dynamicznie tworzy mi tabele wraz z polami typu <labal> oraz <input>. Jak zrobić referencje, aby można było pobrać dane z tych pól i użyć ich w C# oraz jak nadać dynamicznie ID, jeśli to wymagane.

Z góry dzięki za pomoc

E9
  • Rejestracja:ponad 13 lat
  • Ostatnio:12 miesięcy
  • Postów:395
0

Co to za funkcja tworzy Ci tą tabelę? Najprawdopodobniej nadaje ona elementom HTML idetyfikatory. Dzięki nim możesz wyciągnąć wartości danych znaczników poprzez JavaScript. Możesz poszukać informacji o formularzach, tzn. znaczniku <form>.

edytowany 1x, ostatnio: error91
KR
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:260
0

Dodając atrybut runat="server" C# normalnie widzi taki label \ input, sęk w tym że kiedy jest ten element statyczny, nie dynamicznie stworzony (a przynajmniej nie umiem :( ).

TA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:315
0

Poniewaz tworzysz te obiekty dynamicznie to chcac sie do nich dobrac to musisz to samodzielnie obsluzyc (jesli znasz id to bodajze findControl powinno Ci pomoc). Mozesz tez podczas tworzenia zapisywac sobie te obiekty w jakiejsc kolekcji. Ogolnie bez kodu bedzie ciezko cos sensownego zasugerowac.

KR
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 lat
  • Postów:260
0

HTML

Kopiuj
<asp:Literal id="ltrlctrl1" runat="server" />

C#

Kopiuj
ltrlctrl1.Text = "<table class=\"table table-responsive\"><tr>";
ltrlctrl1.Text += "<th>Recipient</th>";
ltrlctrl1.Text += "<th>Address 1</th>";
ltrlctrl1.Text += "<th>Address 2</th>";
ltrlctrl1.Text += "</tr>";
for (int i = 0; i < Recipients.Items.Count; i++)
  {
     ltrlctrl1.Text += "<tr><td> <label runat=\"server\" id=\"Recipient" + (i + 1).ToString() + "\">" + Recipients.Items[i].Text + "</label></td><td><input type=\"text\" style=\"width:100%\" id=\"row1_" + (i + 1).ToString() + "\" value=\"" + ActiveDirectory.GetObjectProperty(UserLogin, "extensionAttribute1", "user") + "\"></td><td><input type=\"text\" style=\"width:100%\" id=\"row2_" + (i + 1).ToString() + "\" value=\"" + ActiveDirectory.GetObjectProperty(UserLogin, "extensionAttribute2", "user") + "\"></td></tr>";
  }
ltrlctrl1.Text += "</table>";

a odwołanie w C#

Kopiuj
var Label1 = (Label)PlaceHolder1.FindControl("Recipient" + (i + 1).ToString());
var TextBox1 = (TextBox)PlaceHolder1.FindControl("row1_" + (i + 1).ToString());
edytowany 1x, ostatnio: Kremius

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.