Лучший способ реализовать чтение и запись для неизвестного количества строк - PullRequest
0 голосов
/ 18 января 2010

Я задал вопрос аналогичным образом, но результат был довольно грязным, и у меня были трудности с заполнением, поэтому я пытаюсь подойти с другой стороны: Вопрос относительно asp: просмотр списка и нескольких динамически создаваемых элементов управления

У меня есть таблица, в которой хранятся шаги процесса. У некоторых компаний есть только 6 шагов, а у других 15, поэтому я создал таблицу с 15 различными слотами для шагов. То, что я хотел бы сделать, это настроить элемент управления, который отображает каждый шаг в отдельной строке с меткой рядом с ним «Step '#'», а не в соседнем столбце. Я также хотел бы, чтобы это не отображало пустые строки. Если они вводят пошаговые инструкции, я бы хотел, чтобы им пришлось нажимать кнопку, которая добавляла бы строку, чтобы им не просто давали 15 пустых текстовых полей для заполнения.

Какой элемент управления будет лучшим для этого, и как мне начать его настройку?

1 Ответ

2 голосов
/ 18 января 2010

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

CompanyId  Step1  Step2  Step3  Step4  Step5  Step 6  Step7 ...
1          alpha  beta   gamma
2          one    two    three  four   five

Вы должны сохранить шаги в виде строк, чтобы получить номер шага в виде данных в поле:

CompanyId  StepNumber  Step
1          1           alpha
1          2           beta
1          3           gamma
2          1           one
2          2           two
2          3           three
2          4           four
2          5           five

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

Что-то вроде:

var steps =
  from s in CompanySteps
  where s.CompanyId = 2
  orderby s.StepNumber
  select new { s.StepNumber, s.Step };

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

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