在HTML中,当我提交表单并突破它时,我有四个复选框。我看到了被捕捉到的价值是“巴雷特的核心旋律”。当我尝试重新打开该条目时,它崩溃了,因为它与所选内容不同。我在此表单中的所有复选框都有相同的问题。
<div class="form-group row">
<div class="col-md-12 col-md-offset-1" style="text-align: left; vertical-align: bottom; margin-top: 10px;">
<label for="chkPreFin" style="text-decoration: underline; font-size: larger;">Pre-Finishing:</label>
<asp:CheckBoxList ID="chkPrefin" RepeatDirection="Vertical" runat="server" TextAlign="right">
<asp:ListItem Value="Special Handling Instructions"> Special Handling Instructions</asp:ListItem>
<asp:ListItem Value="Spin In Barrett"> Spin In Barrett </asp:ListItem>
<asp:ListItem Value="Pre-Clean In GreyMills"> Pre-Clean In GreyMills</asp:ListItem>
<asp:ListItem Value="Separate In Mckenzi"> Separate In Mckenzi</asp:ListItem>
<asp:ListItem Value="Spin Dry In Holland (No Heat)"> Spin Dry In Holland (No Heat)</asp:ListItem>
</asp:CheckBoxList>
</div>
</div>代码隐藏:
For iIndex As Integer = 0 To 4
If chkPrefin.Items(iIndex).Selected Then
Prefin += chkPrefin.Items(iIndex).Value.ToString() + "|"
End If
Next发布于 2021-09-24 19:27:01
您可以迭代整个集合,而不是像使用for循环那样限制它?
For Each i As ListItem In chkPrefin.Items
If i.Selected Then
Prefin &= i.Value.ToString() & "|"
End If
Next此外,请仔细检查您没有引用Text属性,并可能在上面的代码块之前将字符串设置为空字符串。Prefin = ""
发布于 2021-09-25 07:06:04
好的,有几件事:
当然,get +既可以使用"Value“也可以使用"Text”。
如果值来自数据库(您可能有PK id,然后是文本),这将是很常见的。
接下来,因为Value和Text是相同的吗?
然后让我们直接丢弃Value的用法。
但是,然后我们必须修复文本的缩进。
试试这个:
<style>
.lSpace Label {margin-left:15px}
</style>
<asp:CheckBoxList ID="chkPrefin" RepeatDirection="Vertical"
runat="server"
cssClass="lSpace">
<asp:ListItem >Special Handling Instructions</asp:ListItem>
<asp:ListItem >Spin In Barrett </asp:ListItem>
<asp:ListItem >Pre-Clean In GreyMills</asp:ListItem>
<asp:ListItem >Separate In Mckenzi</asp:ListItem>
<asp:ListItem >Spin Dry In Holland (No Heat)</asp:ListItem>
</asp:CheckBoxList>
<br />
<asp:Button ID="Button1" runat="server" Text="Show selections"/>所以,请注意我们是如何添加小样式表的-这些列表项被呈现为标签,所以我们现在可以缩进整个区域,没有杂乱的“空格”。
所以只要改变一下样式--你就可以缩进整个文本(我有15px,但是你想玩什么就玩什么。
和上面的建议代码(是的-非常好)。
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each MySel As ListItem In chkPrefin.Items
If MySel.Selected Then
' Debug.Print("Value of selection = " & MySel.Value) not used
Debug.Print("Text of selection = " & MySel.Text)
End If
Next
End Sub(请注意我是如何注释掉代码的值行的--我们不需要它(因为两者是相同的--但请将上面的代码放在手边--因为您可能需要这两行代码)。
所以,我们有这个:

输出:
Text of selection = Separate In Mckenzi
Text of selection = Spin Dry In Holland (No Heat)https://stackoverflow.com/questions/69319917
复制相似问题