动态设置的单选按钮

时间:2013-08-05 20:53:37

标签: c# asp.net webforms

在页面上,我在查询字符串中有一个ID。从这个ID我需要查询我的查找表,并获得与此表中的id匹配的任何内容的列表。

该表如下所示:

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

如果查询字符串的Id为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

wfd包含前4个列,包含要使用的名称。 wfs是查找表,我将如何判断第一个表中的项目是否应该有单选按钮。

工作项可能没有任何下一步,也不会返回任何结果,因此它应该有任何单选按钮。有些应该返回一个,有些将返回多个。

我需要的是一个动态的单选按钮列表,其中的文本将被设置为名称,并且值将被设置为workID。

这可以在页面后面的代码之外完成吗?

3 个答案:

答案 0 :(得分:2)

RadioButtonList有一个DataSource属性,您可以绑定它。

您的aspx方将拥有

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

aspx.cs

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

除此之外,我并不完全清楚你想要什么。我的另一个建议是使用像LINQ-to-SQL这样的东西,这样你就可以使用C#的所有LINQy优点

答案 1 :(得分:1)

如果您想在没有代码的情况下执行此操作,请查看SqlDataSource。这是一个包含如何从查询字符串中读取的链接:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.querystringparameter.querystringfield.aspx

然后将结果绑定到RadioButtonList。

答案 2 :(得分:0)

您可以使用

过滤返回的数据集
"WorkFlowID = " + Request.QueryString["ID"] + " and NextStepID is not null" 

(虽然不完全那样,因为它易受SQL注入攻击。)

然后将过滤的数据集绑定到ASP.NET Repeater Control

<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>