C# asp.net AjaxControlToolkit.ModalPopupExtender probléma
2019-05-07T10:46:54+02:00
2019-05-07T11:54:39+02:00
2022-08-11T12:20:31+02:00
byprog
Sziasztok,

Egy oldalra automatikusan generálok egy táblázatot (error_table_and_error_msg.png), amelynek adott sorai tartalmaznak olyan cellát, amelyben egy Rögzít gomb található. Ezekhez a gombokhoz szeretnék hozzárendelni egy popup form-ot, amely gombnyomásra megjelenne.

A kódrészlet, amely az AjaxControlToolkit.ModalPopupExtender objektumokat készíti, egy új projektbe beillesztve tökéletesen működik.

Kód:

protected void Page_Load(object sender, EventArgs e) { Table plus_table = new Table(); TableRow plus_table_tr = new TableRow(); TableCell plus_table_td = new TableCell(); plus_table_tr.Controls.Add(plus_table_td); plus_table.Controls.Add(plus_table_tr); PlaceHolder_Main.Controls.Add(plus_table); Table error_table = new Table(); for (int i = 0; i < 2; i++) { TableRow error_table_tr = new TableRow(); for (int idnr = 0; idnr < 10; idnr++) { TableCell error_table_td = new TableCell(); //KÓDRÉSZLET START: Button formbutton = new Button(); formbutton.ID = "formbutton_" + i + "_" + idnr ; formbutton.Text = "Rögzít"; error_table_td.Controls.Add(formbutton); //ModalPopupExtender AjaxControlToolkit.ModalPopupExtender modalpopup = new AjaxControlToolkit.ModalPopupExtender(); modalpopup.ID = "mp_error_" + i + "_" + idnr; modalpopup.PopupControlID = "panel_error_" + i + "_" + idnr; modalpopup.TargetControlID = "formbutton_" + i + "_" + idnr; modalpopup.CancelControlID = "closebutton_" + i + "_" + idnr; error_table_td.Controls.Add(modalpopup); //Panel Panel panel = new Panel(); panel.ID = "panel_error_" + i + "_" + idnr; modalpopup.Controls.Add(panel); //Frame HtmlIframe frame = new HtmlIframe(); frame.ID = "frame_" + i + "_" + idnr; frame.Src = "WebForm2.aspx"; panel.Controls.Add(frame); //Popup Button Button closebutton = new Button(); closebutton.ID = "closebutton_" + i + "_" + idnr; closebutton.Text = "Bezár"; panel.Controls.Add(closebutton); //KÓDRÉSZLET END error_table_tr.Controls.Add(error_table_td); } error_table.Controls.Add(error_table_tr); } PlaceHolder_Main.Controls.Add(error_table); }
Az oldalon, amelyen működtetni szeretném ugyanezt a kódot, ott az alábbi hibaüzenettel áll le:
Egyező azonosító („spanMeta”) tartozik több vezérlőhöz. A(z) FindControl számára egyedi azonosítójú vezérlők szükségesek.

Valakinek valami tippje, hogy mi lehet a probléma?
Mutasd a teljes hozzászólást!
A layout kódját nem tetted ide, de a hibaüzenet alapján gyanús, hogy több control-odban azonos ID-t használsz:

ID="spanMeta"
Az azonosítók legyenek mindig egyediek.
Mutasd a teljes hozzászólást!

abcd