Как мне разместить / обработать 100 флажков? HTML + C # / ASP.NET - PullRequest
0 голосов
/ 23 июня 2009

У меня есть список сообщений (это может быть 24 или 100+). Мне нужно будет удалить многие из этих сообщений. Мне было интересно, как лучше? Мне не нравится идея создания имен для более 100 элементов и что-то вроде doRemove = Request ["msgId" + i];

Я предпочитаю получать массив типа long [] и делать что-то вроде

long[] removeThese = Request["remove"];
foreach ....
    //DELETE msgId WHERE userId=@userId

Однако я не знаю, возможно ли создать массив и POSTing с помощью HTML (и базового javascript?) Или его лучшее решение. Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 06 января 2010

Я бы добавил туда <asp:CheckBoxList />, и когда вам нужно будет отправить изменения, просто возьмите .SelectedValue и передайте его в ваш параметр SQL (где бы это ни делалось).

Если вы работаете в SQL 2008, вы можете воспользоваться «Табличными параметрами» (просто Google), в котором вы просто передаете любую переменную IEnumerable (почти любую коллекцию) в переменную, и вы можете просто присоединиться к ней в своем ОБНОВЛЕНИЕ / УДАЛЕНИЕ / и т.д. запрос.

Предыдущие версии SQL, подход, который я использую, очень похож, за исключением того, что в запросе передается только строка / VARCHAR, и вам нужно создать переменную таблицы или временную таблицу для хранения значений, вставленных из процедуры разделения. Существует много способов создания процедуры разбиения, но я обнаружил, что подход с таблицами чисел работает во всех версиях SQL и имеет довольно хорошую производительность. См. http://www.sommarskog.se/arrays-in-sql-2005.html для исчерпывающей ссылки на возможные последствия для производительности каждого подхода.

Просто скажи нет 1010 * : -)

1 голос
/ 23 июня 2009

Вы можете создать флажок с тем же именем

<input...    name="mycheckbox" value="hello"></input>
<input...    name="mycheckbox" value="world"></input>

На стороне сервера вы можете использовать запрос («mycheckbox»), и это должен быть массив выбранных элементов.

Кроме того, вы можете использовать asp.net checkboxlist.
ссылка - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkboxlist(VS.71).aspx

0 голосов
/ 04 ноября 2009

Если вы ищете «облегченное» решение, вы всегда можете иметь скрытую переменную HTML и назначить событие javascript для каждого флажка, который добавляет свой индекс / id к переменной, создавая список идентификаторов, разделенных запятыми, для обработки .

Затем, когда происходит отправка / подтверждение, вы можете иметь свой код за страницей, захватить эту строку, преобразовать ее в список / массив / все, что лучше всего подходит для вашей обработки, и закончить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...