Как скопировать / клонировать webusercontrol (usercontrol) - PullRequest
0 голосов
/ 08 февраля 2019

Я искал в Интернете, чтобы найти, как скопировать или каким-либо образом клонировать usercontrol в asp.net, но я не смог ничего найти, потому что, возможно, ни у кого не было этой проблемы, или я достаточно талантлив, чтобы найти решение.Я получил решение, поигравшись с кодом.Скажем, если вы хотите добавить пользовательский контроль для каждой панели на своей странице, вы выполняете поиск на каждой панели и затем добавляете элемент управления, но это только делает один экземпляр usercontrol1 и его можно использовать только один раз.и это не работает.

        UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
      foreach (Panel p in form1.Controls.OfType<Panel>())
       {
           p.Controls.Add(uc);

        }

код, который работает, если вы используете функцию, которая возвращает элемент управления, поэтому код, который работает, как показано ниже, работает как чудо, но я не знаю, еслиэто самое оптимальное.

UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
foreach (Panel p in form1.Controls.OfType<Panel>())
        {
            p.Controls.Add(returnuc());

        }
//this is the function that creates an instance each time 
private Control returnuc ()
    {

        UserControl uc = (WebUserControl1)LoadControl("WebUserControl1.ascx");
        return uc;
    }

gl и получайте удовольствие от написания кода, надеюсь, это поможет.

...