VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: yoto999

搞.net开发一年半了,碰到一个很棘手的问题(RadioButtonList被选择后怎么取消选择?)

[复制链接]

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-28 18:00:01 | 显示全部楼层
Sorry,下班回家晚了点,测试通过:
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
        <script language="javascript">
        <!--
        var a = new Array();
       
        function myClick(e)
        {
                for(var h=0;h<document.all.length;h++)
                {
                        if(document.all(h).tagName == "INPUT" && document.all(h).type == "radio")
                        {
                                if(document.all(h).id == e.id)
                                {
                                        if(a[h] == 1)
                                                e.checked = false;
                                        else
                                                e.checked = true;
                                }
                        }
                }
                for(var i=0;i<document.all.length;i++)
                {
                        if(document.all(i).tagName == "INPUT" && document.all(i).type == "radio")
                        {
                                if(document.all(i).id == e.id)
                                {
                                        a[i] = 1;
                                }
                                else
                                {
                                        a[i] = 0;
                                }
                        }
                }

        }
        //-->
        </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:RadioButtonList ID="RadioButtonList1" runat="server">
            <asp:ListItem>a</asp:ListItem>
            <asp:ListItem>b</asp:ListItem>
        </asp:RadioButtonList>
        </div>
    </form>
</body>
</html>


后台:
//......
protected void Page_Load(object sender, EventArgs e)
    {
        for(int i = 0; i < this.RadioButtonList1.Items.Count; i++)
        {
            this.RadioButtonList1.Items[i].Attributes.Add("onclick", "myClick(this);");
        }
    }
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-29 15:15:01 | 显示全部楼层
删除原来的控件,在用.NET去创建
回复

使用道具 举报

0

主题

9

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-2 11:30:02 | 显示全部楼层
用javascript实现了,实用一个隐藏域保存checkbox的状态

<script language="javascript">
                        function cancelCheck()
                        {
                                    //具体的ID可以看生成的HTML
                                var obj = document.getElementById("rdlist_0");

                                var item = document.getElementById("status");
                                alert(item.value);
                                if(item.value == 0)
                                {
                                        obj.checked = true;
                                        item.value = 1;
                                }
                                else
                                {
                                        obj.checked = false;
                                        item.value = 0;
                                }
                        }
                </script>
        </HEAD>
        <body MS_POSITIONING="GridLayout">
                <form id="Form1" method="post" runat="server">
                        <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 416px; POSITION: absolute; TOP: 184px"
                                runat="server"></asp:TextBox>
                        <asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 304px; POSITION: absolute; TOP: 184px" runat="server"
                                Width="88px">Label</asp:Label>
                        <asp:RadioButtonList ID="rdlist" Runat="server" style="Z-INDEX: 103; LEFT: 344px; POSITION: absolute; TOP: 264px"
                                Width="152px" RepeatDirection="Horizontal">
                                <asp:ListItem Value="1">A</asp:ListItem>
                                <asp:ListItem Value="2">B</asp:ListItem>
                        </asp:RadioButtonList>
                        <asp:Button id="Button1" style="Z-INDEX: 104; LEFT: 568px; POSITION: absolute; TOP: 264px" runat="server"
                                Width="120px" Text="Button"></asp:Button>
                        <input id="status" type="hidden" runat="server" value="0" style="Z-INDEX: 105; LEFT: 416px; POSITION: absolute; TOP: 392px">
                </form>
        </body>

后台

If Not IsPostBack Then
            Me.rdlist.Attributes.Add("onclick", "cancelCheck();")
        End If
回复

使用道具 举报

0

主题

9

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-2 14:45:01 | 显示全部楼层
才发现,直接复制过来好乱。。。
整理一下主要内容
javascript:
function cancelCheck()
{
    //具体的ID可以看生成的HTML
    var obj = document.getElementById("rdlist_0");

    var item = document.getElementById("status");
    alert(item.value);
    if(item.value == 0)
    {
         obj.checked = true;
         item.value = 1;
    }
    else
    {
         obj.checked = false;
         item.value = 0;
     }
}

html的隐藏域
<input id="status" type="hidden" runat="server" value="0">

在后台把事件绑定到radiobuttonlist上
If Not IsPostBack Then
    Me.rdlist.Attributes.Add("onclick", "cancelCheck();")
End If

成功实现
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表