** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки SQL-инъекции не только полагаются на возможность вставлять X=Y
. **
Если злоумышленники пытаются взломать форму с помощью переменной PHP $_GET
или с помощью строки запроса URL, вы сможете поймать их, если они не защищены.
RewriteCond %{QUERY_STRING} ([0-9]+)=([0-9]+)
RewriteRule ^(.*) ^/track.php
Поскольку 1=1
, 2=2
, 1=2
, 2=1
, 1+1=2
и т. д. ... являются распространенными вопросами к базе данных SQL злоумышленника. Возможно, он также используется многими хакерскими приложениями.
Но вы должны быть осторожны, чтобы не переписывать безопасный запрос с вашего сайта. Вышеупомянутый код дает вам возможность переписать или перенаправить (зависит от вас) эту динамическую строку запроса, зависящую от хакерства, на страницу, в которой будет храниться IP-адрес злоумышленника или EVEN THEIR COOKIES, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.
Как насчет
DataSource = null;
DataBind();
Попробуйте это ...
myListView.DataSource = null;
myListView.Items.Clear();
Я предполагаю, что Clear()
вызывает отправку события Changed
, которое, в свою очередь, запускает автоматическое обновление вашего списка из источника данных. Так что это особенность, а не ошибка ;-)
Вы пробовали myListView.Clear()
вместо myListView.Items.Clear()
? Может быть, это работает лучше.
Проблема возникает из-за того, что вы пытаетесь очистить весь список. Просто используйте listView1.Items.Clear ();
Я предложил бы удалить строки из базового DataTable, или если Вы больше не нуждаетесь в таблице данных, устанавливаете источник данных в NULL.
Вероятно, Ваш код работает, но это - восстановление где-нибудь после очистки его. Удостоверьтесь что это это не случай. Будет более полезно при обеспечении некоторого кода. Где Вы устанавливаете свой источник данных? Где Вы - привязка данных? Где Вы очищаете список?
listView.Items.Clear()
listView.Refresh()
/ e Обновление из-за отсутствия объяснения. Часто Clear () не достаточно в случае следующих событий / методов. Лучше всего обновить представление с помощью Refresh () после Clear () для мгновенного отражения очистки listView. Это, так или иначе, решило мои проблемы.
Не беспокойтесь о Clear (). Просто сделайте следующее: ListView.DataSource = null; ListView.DataBind ();
Ключ - это databind (); Работает каждый раз для меня.