我们有一个带有Yes或No选项的RadioButonList,但是,我们希望从数据库中动态填充这些选项。
数据库中的列名(其值要填充到RadioButtonList中)名为IsVetoVote
,其数据类型为Bit
,值为1表示Yes,0表示No。
例如,如果用户在数据库中查询特定提案以查看该提案是否已被投票,如果答案为是(或1),则希望选中单选按钮列表是框。如果答案为否(或0),则选中单选按钮列表否框。
我的代码未提供"是"或"否"值。
当我在SSMS中运行代码的查询部分时,我得到了正确的结果1或0,但是没有检查RadioButtonList。
这是我的当前代码:
<asp:RadioButtonList ID ="VetoVote" RepeatDirection="Horizontal" runat="server">
<asp:ListItem Value="Yes"></asp:ListItem>
<asp:ListItem Value="No"></asp:ListItem>
</asp:RadioButtonList>
Sub LoadData()
Dim strSQL As String = "Select IsVetoVote from Ballots where choices Like '%' + @vetono + '%'"
Dim cmdSQL As New SqlCommand(strSQL)
With cmdSQL.Parameters
.Add(New SqlParameter("@vetono", SqlDbType.NVarChar).Value = address.Replace("'", "''").Trim())
End With
Dim rstData As DataTable = MyrstP(cmdSQL)
With rstData.Rows(0)
' now set the radio button, we have a true/false column "Active"
' in the table. So, if true - set Radbio bt1 index 0 (first choice)
' if false, then set RB index 1 = (2nd choice).
VetoVote.SelectedIndex = Not (.Item("IsVetoVote")) ' sql returns 1 for true, 0 for false
End With
End Sub
Public Function MyrstP(cmdSQL As SqlCommand) As DataTable
Dim rstData As New DataTable
Using mycon As New SqlConnection(conString)
Using (cmdSQL)
cmdSQL.Connection = mycon
mycon.Open()
rstData.Load(cmdSQL.ExecuteReader)
End Using
End Using
Return rstData
End Function
//检查用户帐单地址是否与邮寄地址相同的复选框。
<td style="width:5%;" class="align-left"><span style="color:darkred;font-weight:600;font-size:14pt;" class="rMyChoice"> Check box if billing address is same as mailing address <img src="Images/hand-arrow.jpg" class="rMyChoice" style="vertical-align:middle !important;" alt="Check the checkbox" /><asp:CheckBox style="height:45px;width:45px;" ID="SameAsMailing" class="rMyChoice" runat="server" /></span></td>
1条答案
按热度按时间3mpgtkmj1#
好吧,你应该不需要任何循环。
假设我有一个酒店记录,我决定使用RB列表代替复选框。
因此,如果hotel active =真,则设置RB第一选择。
因此,如果旅馆活动=假,则设置RB第二选择。
所以,假设这个标记:
和要加载的代码:
结果是这样的:
所以,你不是试图"填充" RB按钮,你想设置第一个选择,和/或第二个选择的基础上,一个单一的真/假列。
我注意到了上面的内容,因为RB列表可以被"馈送"到一个数据源。
我可能希望用户从列表中选择一家酒店,因此我可以将RB列表的"value"设置为酒店的数据库PK id,然后将文本部分设置为酒店名称。
我可以把RB列表放到一个页面上
然后这个代码:
现在我们有一个列表,您只能选择一家酒店:
例如:
所以,我们在这里被抛出了一个循环,你建议你用数据来填充一个RB列表。
不,您只是想根据数据库中一条记录的一个真/假值设置第一个选择或第二个选择。
因此,您可以设置selected index = 0(第一选择),或者设置selected index = 1(第二选择)。
作为一个提示,我已经厌倦了一遍又一遍地输入代码来获取一些数据,所以上面的例子使用了这个helper例程:
编辑:RB测试示例
所以,让我们建立一个100%新的页面,只有这样的标记:
后面的代码是这样的:
我们现在看到这个:
编辑#2:我的RB列表css
如果你有这个:
然后我们看到/得到这个:
但是,如果我们在该页添加以下内容:
编辑:更新样式表-删除复选框
然后这个
然后我们得到/看到这个: