Если вы хотите создать службу CORS из PHP, вы можете использовать этот код в качестве первого шага в вашем файле, который обрабатывает запросы:
// Allow from any origin
if(isset($_SERVER["HTTP_ORIGIN"]))
{
// You can decide if the origin in $_SERVER['HTTP_ORIGIN'] is something you want to allow, or as we do here, just allow all
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
}
else
{
//No HTTP_ORIGIN set, so we allow any. You can disallow if needed here
header("Access-Control-Allow-Origin: *");
}
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 600"); // cache for 10 minutes
if($_SERVER["REQUEST_METHOD"] == "OPTIONS")
{
if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_METHOD"]))
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT"); //Make sure you remove those you do not want to support
if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
//Just exit with 200 OK with the above headers for OPTIONS method
exit(0);
}
//From here, handle the request as it is ok
Создайте собственный пользовательский элемент управления для панелей, которые вы хотите отобразить, содержащий все элементы управления из необходимой панели инструментов.
public partial class MyControl : UserControl
{
...
}
В «MyControl» вы определяете события для всех вещей, которые могут произойти и должны обрабатываться извне элемента управления. Такой же как например «SelectedIndexChanged» для выпадающего списка.
Ваш класс управления будет выглядеть следующим образом:
public partial class MyControl : UserControl
{
public event EventHandler<MyImportantEventA> OnImportantThingHappend;
//Event-Invoker
protected virtual void OnOnImportantThingHappend(MyImportantEventA e)
{
OnImportantThingHappend?.Invoke(this, e);
}
}
//Data of your event. Customize as you like/need.
public class MyImportantEventA : EventArgs
{
public string Message { get; set; }
}
Когда вы добавляете свой элемент управления динамически, привязывайте к событию (ям) вашего элемента управления:
myUserControl.OnImportantThingHappend += DoSomethingWithEvent;
контроль может справиться сам, не нужно выставлять его как события. Например :
«Закрыть» может быть чем-то, что должно быть обработано извне. Вам нужно удалить элемент управления, изменить его расположение и т. Д.
«Показать детали», вероятно, является чем-то, что может быть обработано полностью внутри вашего контроля. Ваш элемент управления показывает окно сообщения или необычную подсказку.