#asp.net #webforms
#asp.net #веб-формы
Вопрос:
У меня есть веб-приложение, в котором я динамически генерирую и отображаю флажки во время выполнения. Каждый флажок соответствует элементу. Мне нужно найти, какие элементы выбраны. Однако я не могу установить идентификатор элемента в атрибуте ID элемента управления Checkbox при создании элемента управления, поскольку один и тот же элемент может отображаться несколько раз на веб-странице.Атрибут ID позволяет мне использовать страницу.Метод Form (), но теперь я не могу использовать. Пожалуйста, предложите альтернативный метод определения того, какие флажки установлены.
Комментарии:
1. Что вы подразумеваете под «динамически генерирующим»? Вы создаете список флажков в коде на стороне сервера, или флажок создается событием? В любом случае, ваш серверный код должен позволять вам устанавливать
ID
свойство вашего флажка, поэтому я бы установил для него что-то вродеcheckboxN
где N — положительное целое число, которое увеличивается с каждым новым идентификатором. Таким образом, вы можете получить конкретный флажок, не зная его значения.2. Как они динамически генерируются .. в коротком коде, пожалуйста
Ответ №1:
Если вы используете JQUERY, вы можете назначить общий класс каждому флажку, а затем использовать «селектор классов», чтобы получить массив элементов на странице, которые все имеют один и тот же класс. С помощью этого вы можете выполнить итерацию по массиву и определить, какие элементы были проверены. Соответствующий код будет выглядеть примерно так:
<head>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
function findCheckedBoxes() {
var AllBoxes = $(".productCheckBox");
for(i=0;i<AllBoxes.length; i )
{
if(AllBoxes[i].checked)
{
//do something with it...
alert(AllBoxes[i].value);
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server" onsubmit="return validatefields();">
<input id="Checkbox1" type="checkbox" class="productCheckBox" value="one" />One<br />
<input id="Checkbox2" type="checkbox" class="productCheckBox" value="two" />Two<br />
<input id="Checkbox3" type="checkbox" class="productCheckBox" value="three" />Three<br />
<input id="Checkbox4" type="checkbox" class="productCheckBox" value="four" />Four<br />
<input id="Button2" type="button" value="button" onclick="findCheckedBoxes()" />
</form>
</body>
</html>
Комментарии:
1. 1 для вашего веб-сайта … лучшее развлечение, которое у меня было за долгое время 😉
2. Извините, у меня нет никаких знаний о Jquery. Я искал ASP.net решение. В любом случае спасибо!
3. @vjain27, тебе действительно нужно добавить jquery в свой toolbox. Это работает на клиенте, где ASP.NET в основном это технология на стороне сервера.
4. @vjain27 интересно, как бы вы добились своего asp.net решение без идентификатора
5. @Cos Callis — Но с помощью jquery, как я смогу прочитать флажки на стороне сервера?