0

我很难调试这个奇怪的问题(也许这很奇怪,因为我是第一次做 VB.NET 的 PHP 人)

我有一个像下面这样的 Gridview

<asp:GridView ID="MyGridViewID" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="employee_id" DataSourceID="all_employee" >
    <Columns>

        <asp:BoundField DataField="employee_id" HeaderText="employee_id" 
            ReadOnly="True" SortExpression="employee_id" Visible="False" />
        <asp:BoundField DataField="employee_name" HeaderText="employee_name" 
            SortExpression="employee_name" />

        <asp:TemplateField HeaderText="Select">
            <ItemTemplate>
                <br />
                <asp:RadioButtonList ID="RadioPermission" runat="server">
                    <asp:ListItem Value="1">Yes</asp:ListItem>
                    <asp:ListItem Selected="True" Value="0">No</asp:ListItem>
                </asp:RadioButtonList>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowSelectButton="True" ItemStyle-CssClass="visibility" ShowHeader="false"
                            HeaderStyle-CssClass="visibility" >
        <HeaderStyle CssClass="visibility" />
        <ItemStyle CssClass="visibility" />
        </asp:CommandField>
    </Columns>
</asp:GridView>

然后我有一个将信息保存到数据库的按钮,它与保存部分配合得很好

For Each row As GridViewRow In MyGridViewID.Rows
        Dim radio_cp As RadioButtonList =    CType(row.Cells(7).FindControl("RadioPermission"), RadioButtonList)

        If radio_cp.SelectedValue = 1 Then
            ' BLOCK A: saving to the db if the radio is YES
        Else
            ' BLOCK B: deleting from the db if the radio is NO.
        End If

    Next

我的问题:

  1. 当我第一次加载 Gridview 时将所有单选设置为 NO,我为某些单选选择 YES 并单击保存,它运行良好。

  2. 然后刷新 Gridview 并在这些收音机中正确反映更改。

  3. 然后我为当前设置为 YES 的收音机选择 NO 并再次单击 Save => radio_cp.SelectedValue 始终返回 1。

  4. Checkbox 和 Radio 的问题是一样的:我无法检测到用户何时取消选中 checkbox/radio。我认为gridview在某个地方保存了那些checkbox/radio的状态,但我不知道

  5. 我尝试了 EnableViewState 没有运气,谷歌搜索了很多也没有运气。

  6. 我尝试了 OnCheckedChecked 事件,但没有成功。

我可能会在这里遗漏一些东西,你能帮忙吗?

谢谢你所有的时间!

4

1 回答 1

0

你的代码应该可以工作......我已经根据你的代码修补了一个简单的应用程序,它工作得很好。

我不确定问题到底出在哪里,还有其他可能影响单选按钮列表的东西吗?

编辑:

这可能对您的问题没有影响,但是您可以这样做:

Dim radio_cp As RadioButtonList =    CType(row.FindControl("RadioPermission"), RadioButtonList)
于 2013-04-02T19:20:55.597 回答