数据列表中的单选按钮出现问题

本文关键字:问题 单选按钮 列表 数据 | 更新日期: 2023-09-27 18:30:10

伙计们,在问这个问题之前,我对这个话题做了很多研究,但我没能发现问题。我在数据列表中有单选按钮,我正在尝试获取选定的单选按钮值。但它向我展示了提交按钮上所有单选按钮的错误。我的数据列表是这样的:

<asp:DataList ID="dlEmails" RepeatLayout="Flow" runat="server" >
        <HeaderTemplate>
            <table>
                <tr>
                    <th>Select Email Address </th>
                    <th>Status</th>
                </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td>

                    <asp:RadioButton ID="rbtnSelect"  Text='<%#Eval("Emails") %>' onclick='fnrad(this);' GroupName="a" Checked='<%#Eval("Primary") %>' runat="server" /><br />
                    (<asp:Label ID="lablel" runat="server" Text='<%#Eval("Verified") %>'> </asp:Label>)
                </td>
                <td valign="middle">
                    <asp:Label ID="lblID" Style="display: none;" runat="server" Text='<%#Eval("Id") %>'> </asp:Label>
                    <asp:Label ID="Label1" runat="server" Text='<%#Eval("Main") %>'> </asp:Label>
                </td>
            </tr>

        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:DataList>

一次只允许选择单个单选按钮的Javascript是这样的:

   <script>
    function fnrad(rbtn) {

        var radioList = document.getElementsByTagName("input");
        for (var i = 0 ; i < radioList.length; i++) {
            if (radioList[i].type == "radio") {
                radioList[i].name = 'a';
                radioList[i].checked = false;
            }
        }
        rbtn.checked = true;
        rbtn.setAttribute("Checked","checked");
    }

</script>

我的代码是这样的:

public partial class Member_EmailList : System.Web.UI.Page
{
    EmailsBAL _mbl = new EmailsBAL(SessionContext.SystemUser);
    DataSet _ds = new DataSet();
    URLMessage URLMessage = new URLMessage();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            LoadData();
        }
    }
    private void LoadData()
    {
        _mbl.LoadByUser(_ds, 1);//SessionContext.SystemUser;
        dlEmails.DataSource = _ds.Tables[_mbl.SqlEntityX];
        dlEmails.DataBind();
    }
    protected void lnkConfirm_Click(object sender, EventArgs e)
    {
        RadioButton rb;
        Label lbl;
        int id = 0;
        foreach (DataListItem di in dlEmails.Items)
        {
            rb = (RadioButton)di.FindControl("rbtnSelect");

                if (rb.Checked == true)
                {
                    lbl = (Label)di.FindControl("lblID");
                    id = WebHelper.Cast(lbl.Text, 0);
                }

        }
        //Response.Redirect("~/Member/ConfirmEmail.aspx?" + URLMessage.Encrypt("SystemUser=" + SessionContext.SystemUser + "Id=" + id.ToString()));    
    }}

数据列表中的单选按钮出现问题

我尝试了您的javascript函数,并遇到了问题

我建议在javascript函数上使用Jquery。我重构了你的jav函数。

function fnrad(rbtn) {
    $('input').removeAttr('checked');
    $(rbtn).prop('checked', true);
}

这对我来说效果很好。如果你仍然遇到这个问题,请告诉我。