2008-09-23 2 views
3

Я знаю, как использовать checkboxlist в ASP.NET для отображения параметров, полученных из базы данных. То, что я не знаю, как сделать, - сделать это двухмерным. То есть, мне нужен список флажков, где я не знаю, как долго этот список; оба размеры CheckBoxList будут определятьсяКак создать массив или список флажков ASP.NET

список людей (тянули из базы данных) список задач (тянули из базы данных)

и пользователем веб-страницы щелкнет в столбце/строке, чтобы указать, какие людям будут назначены какие задачи.

Прямо сейчас я думаю, что мой единственный вариант - скопировать его, создав таблицу и заполнив каждую ячейку своим собственным флажком. (yuck)

Есть ли более элегантный способ создания двумерного массива флажков с метками для строк и столбцов?

+0

Почему в мире вы бы использовали стол? – lordscarlet 2008-09-23 17:22:07

ответ

2

Я бы использовал ретранслятор вместе с checkboxlist. В зависимости от того, как настроена ваша база данных, вы можете иметь каждый привязку к каждому флажку.

0

Я делал это раньше и прибегал к методу грубой силы, который вы предлагаете.

Это не так противно, как вы думаете. Другие решения, которые были декларативными и привязаны к данным, скорее всего, были бы запутаны и запутаны.

0

Вы можете запрограммировать программу GridView. Это по своей сути двухмерное, и вы можете использовать привязку данных CheckBoxField s для этого.

+0

GridView был бы ужасен. Повторитель был бы хорош. – lordscarlet 2008-09-23 17:21:29

0

Я использую ASPxGridView от DevExpress. Он имеет тип столбца управления Selected (или что-то в этом роде), в котором будет отображаться флажок в столбце с другим столбцом, заполненным вашим связанным источником данных. Пользователь может выбрать любые требуемые строки, установив флажок в строке, и вы можете легко удалить все выбранные строки из коллекции для обработки. Компоненты DevExpress действительно избавляются от множества программ грубой силы.

0

Если вы ищете быстрый и грязный способ, вы можете использовать AJAX Control Toolkit с двумя элементами управления и можете заполнить его на основе другого. Если это не то, что вы ищете, я бы сделал это грубо.