2009-04-02 9 views
0

Я создаю сайт ASP.NET с тяжелым CRUD-кодом, и у меня есть фаза проекта, где я пытаюсь создать веб-страницу поиска который показывает пользователю разные подмножества определенной важной таблицы на основе вводимых параметров, таких как даты и разные текстовые поля.Каков наилучший подход для этой страницы поиска CRUD в ASP.NET?

Я не могу использовать фиксированный оператор SQL, потому что в зависимости от того, будут ли они искать по дате или чем-то другим, SQL будет другим, поэтому вместо этого я создаю список результатов, используя элемент управления веб-таблицей, который начинается невидимый, а затем заполняется и устанавливается на видимый, как только пользователь идентифицирует поиск, который они хотят сделать. Я использовал элемент управления таблицей, потому что его легко создать и изменить в коде позади, и я смог выполнить необходимые вызовы в базе данных и заполнить эту таблицу по мере необходимости.

Однако, второе, что мне нужно с этой страницей поиска, - это возможность разрешить пользователю выбирать запись из результатов и затем редактировать ее, используя остальную часть страниц на основе CRUD на сайте. Для этого я создал asp: кнопки в таблице и дал им все разные идентификаторы и один и тот же обработчик событий. Но поскольку я создал кнопки динамически, кажется, что событие исчезает при обратном вызове, и моя схема не работает, поэтому я второй раз посмотрю, как это сделать.

Мой текущий код для событий выглядит следующим образом:

tempcell = new TableCell(); 
Button tempbutton = new Button(); 
tempbutton.Text = "Go"; 
tempbutton.ID = "gobutton" + rowN; 
tempbutton.Visible = true; 
tempbutton.Click += new EventHandler(tempbutton_Click); 
tempcell.Controls.Add(tempbutton); 
temprow.Cells.Add(tempcell); 

таблица Мои результаты объявляется так:

<asp:Table ID="ResultTable" visible="false" runat="server" 
GridLines="Both" CellSpacing="8"> 
</asp:Table> 

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

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

+0

Возможно, разместите свой aspx html и ваш gridview или datagrid, и мы сможем помочь гораздо эффективнее! –

ответ

1

Ваше мероприятие успешно подключится, если кнопка воссоздана в событии загрузки страницы.

В противном случае используйте GridView. Это идеальное решение для простого CRUD, и вы можете контролировать его столько, сколько вам нужно.

+0

Я не могу использовать gridview, у меня нет статического оператора SQL, который я могу использовать. –

+1

Вам это не нужно, вы можете создать и выполнить свой оператор в коде, а затем передать результаты в gridview. Он имеет свойство DataSource, которое с радостью примет DataTable. – cjk

+0

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