2013-08-05 3 views
0

На странице У меня есть идентификатор в строке запроса. Из этого идентификатора мне нужно запросить мою таблицу поиска и получить список чего-либо, соответствующего идентификатору в этой таблице.Динамический набор переключателей

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

id workFlowID nextStepID 
2  27   28 
3  28   29 
4  27   29 

Если строка запроса имеет идентификатор 27, то он будет возвращать только два результата.

Как создать динамический переключатель для этих двух результатов?

Ниже приведены две таблицы, которые я буду использовать.

select * from jm_AccountworkFlowDetail wfd 
left join jm_accountworkflowsteps wfs on wfs.workFlowID = wfd.workID 

Вот что приведенный выше запрос будет возвращать:

workID name    status nextStep id workFlowID nextStepID 
27  BaseLevelWFI  NULL  NULL  2  27   28 
27  BaseLevelWFI  NULL  NULL  4  27   29 
28  NextStepBaseLevel NULL  NULL  3  28   29 
29  AfterNextStepBase NULL  NULL  NULL NULL  NULL 

ВРД содержит первые 4 colums, содержит имя, которое будет использоваться. wfs - это таблица поиска и как я скажу, должен ли элемент в первой таблице иметь переключатели.

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

Мне нужен динамический список переключателей с текстом, который должен быть установлен как имя и значение, которое должно быть установлено как идентификатор workID.

Это можно сделать за пределами кода за страницу?

+0

Вы используете ASP.NET WebForms? Похоже на это. –

+0

@JeremyPridemore да asp.net веб-формы извините. :) –

+0

Считаете ли вы использование MVC? – davids

ответ

0

Вы можете фильтровать набор данных, который вы возвращаемые с помощью

"WorkFlowID = " + Request.QueryString["ID"] + " and NextStepID is not null" 

(Хотя это и не совсем так, потому что это уязвимое для SQL Injection.)

, а затем связать отфильтрованный набор данных на ASP .NET управления Repeater

<asp:Repeater id="cdcatalog" runat="server"> 


<ItemTemplate> 
    <%# DataBinder.Eval(Container.DataItem, "name") %> 
    <input type='radio' name='nextStepId' 
     value='<%# DataBinder.Eval(Container.DataItem, "nextStepID") %>'/> 
    <br/> 
</ItemTemplate> 
</asp:Repeater> 
2

RadioButtonList имеет DataSource свойство, которое вы можете связывать.

Ваш aspx сторона затем

<asp:RadioButtonList runat="server" ID="radioButtonList" /> 

и aspx.cs сторону

this.radioButtonList.DataSource = myDataSource; 
this.radioButtonList.DataBind(); 

Другое чем, что я не совсем понятно, на что вы хотите. Моим другим советом было бы использовать что-то вроде LINQ-to-SQL, чтобы вы могли использовать все преимущества LINQy C#

+0

Спасибо dav_i Я тоже наткнулся на это и получил работу, которая мне нужна. –

+0

Приятно слышать. Удачи. –

1

Если вы хотите сделать это без кода, загляните в SqlDataSource. Вот ссылка, которая включает в себя как читать строку запроса: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.querystringparameter.querystringfield.aspx

Затем привяжите результат к вашему RadioButtonList.

+0

Спасибо, Jan, я наткнулся на radioobuttonlist до этого, и, похоже, он работает отлично для того, что я ищу. –

Смежные вопросы