微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET:每个单选按钮在检查时都返回 false

如何解决ASP.NET:每个单选按钮在检查时都返回 false

我在获取嵌套转发器内单选按钮的正确值(检查为真/假)时遇到问题。

查看

    <table id="HoursTable">
    <asp:Repeater ID="hoursRepeater" runat="server">        
        <HeaderTemplate>
            <thead>
                <tr>
                    <th>V</th>
                    <th>some text</th>
                    <th>some text</th>
                    <th>some text</th>
                </tr>
            </thead>
        </HeaderTemplate>
        <ItemTemplate>                
            <tr runat="server" ID="itemTemplateRow">
                <td runat="server" visible="false">
                    <asp:HiddenField runat="server" ID="HoursIDHiddenField" Value='<%# Eval("HoursID") %>' />
                </td>
                <td class="centeralign">
                    <input runat="server" type="radio" class="radiobuttonMain" ID="aprrovalRadioButton" Checked='<%# DataBinder.Eval(Container.DataItem,"IsApproved") %>' />
                </td>
                <td>some text</td>
                <td>some text</td>
            </tr>
            <asp:Repeater runat="server" ID="temporaryHoursRepeater" OnItemDataBound="temporaryHoursRepeater_ItemDataBound">                    
                <ItemTemplate>
                    <tr runat="server" ID="itemTemplateRow">
                        <td runat="server" visible="false">
                            <asp:HiddenField runat="server" ID="HoursIDHiddenField" Value='<%# Eval("HoursID") %>' />
                        </td>
                        <input runat="server" type="radio" class="radiobuttonTemp" ID="aprrovalRadioButton" Checked='<%# DataBinder.Eval(Container.DataItem,"IsApproved") %>'/>
                        <td>some text</td>
                        <td>some text</td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
        </ItemTemplate>            
    </asp:Repeater>
</table>
<tr>
    <td>
        <asp:Button runat="server" ID="saveButton" CssClass="saveButton" Text="Save" OnClick="saveButton_Click" />
    </td> 
</tr>

代码隐藏

Protected Sub saveButton_Click(sender As Object,e As EventArgs)
    For Each rptItem As RepeaterItem In urenRepeater.Items
        Dim currentHoursGroup As New List(Of Hour)
        currentHoursGroup.Add(DomainController.getInstance.getHour(CType(rptItem.FindControl("HoursIDHiddenField"),HiddenField).Value))
        For Each rptItemC As RepeaterItem In CType(rptItem.FindControl("temporaryUrenRepeater"),Repeater).Items
            currentHoursGroup.Add(DomainController.getInstance.getHour(CType(rptItemC.FindControl("HoursIDHiddenField"),HiddenField).Value))
        Next

        If DirectCast(rptItem.FindControl("approvalRadioButton"),HtmlInpuTradioButton).Checked Then
            currentHoursGroup.Remove(DomainController.getInstance.getHour(CType(rptItem.FindControl("HoursIDHiddenField"),HiddenField).Value))
            DomainController.getInstance.getHour(CType(rptItem.FindControl("HoursIDHiddenField"),HiddenField).Value).deleteallTemporaryHours()
        Else
            For Each rptItemT As RepeaterItem In CType(rptItem.FindControl("temporaryUrenRepeater"),Repeater).Items
                If DirectCast(rptItemT.FindControl("approvalRadioButton"),HtmlInpuTradioButton).Checked Then
                    currentHoursGroup.Remove(DomainController.getInstance.getHour(CType(rptItemT.FindControl("HoursIDHiddenField"),HiddenField).Value))
                    'do sth
                End If
            Next
        End If
        For Each u As Hour In currentHoursGroup
            'do sth
        Next
    Next
End Sub

问题是'DirectCast(rptItem.FindControl("approvalRadioButton"),HtmlInpuTradioButton).Checked'总是返回false,即使它被选中。

我做了数小时的研究,但我不知道我在这里做错了什么

解决方法

我找到了一种解决方法来达到我想要的效果。

我在每一行添加了一个隐藏字段并赋予它以下属性:

Value='<%# DataBinder.Eval(Container.DataItem,"IsApproved").ToString %>'

然后我写了一些 javascript 来改变隐藏字段的值(真/假),如果一个单选按钮被按下。

在后面的代码中,我从每个重复项中检查隐藏字段的值,然后我得到了我选择的行!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。