【问题标题】:Problems with Radio button in the datalist数据列表中单选按钮的问题
【发布时间】:2017-02-24 04:41:34
【问题描述】:

在问这个问题之前,我对这个主题做了很多研究,但我无法检测到问题。我在数据列表中有单选按钮,我正在尝试获取选定的单选按钮值。但它正在显示我对提交按钮上的所有单选按钮都是错误的。我的数据列表是这样的:

<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()));    

    }}

【问题讨论】:

  • 你介意使用jquery吗?
  • 你的按钮在哪里?可以在数据列表中使用吗?
  • 没有@NiMa 我有任何问题
  • 按钮在数据列表之外 yogi lnkConfirm
  • 你的JS函数有问题。

标签: c# jquery asp.net datalist


【解决方案1】:

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

我想建议在您的 javascript 函数上使用 Jquery。我将你的 jav 函数重构为这个。

function fnrad(rbtn) {

    $('input').removeAttr('checked');

    $(rbtn).prop('checked', true);

}

这对我来说非常有效。如果您仍然遇到此问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多