Как загрузить usercontrols из сборки, используя имя файла?
У нас есть набор пользовательских контроллеров, соответствующих dll. мы могли бы просто загрузить элементы управления, используя их имена классов, как ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx();
но если у нас есть динамические данные и загружаем элементы управления на основе имени файла (или имени элемента управления), как мы можем загрузить их как Page.LoadControl("TheURL/theusercontrol.ascx")
?
Большое спасибо...
1 ответ
Нет действительно правильного способа сделать это. Файлы.ascx не предназначены для такого развертывания. Код был скомпилирован в.dll, но фактическая разметка из файла.ascx - нет. Даже если вы будете следовать официальной документации Microsoft по преобразованию файлов.ascx в развертываемые элементы управления, вы потеряете возможность вызывать LoadControl на основе имени файла просто потому, что файла разметки больше нет.
Существует множество хаков, которые позволяют вам сделать это путем отражения и встраивания файлов.ascx в качестве ресурсов.
Кроме того, если вам действительно нужно использовать LoadControl(filename)
Вам нужно будет скопировать файлы.ascx.