【问题标题】:Two datalist with radiobutton in one aspx page一个 aspx 页面中带有单选按钮的两个数据列表
【发布时间】:2012-12-20 08:22:00
【问题描述】:

我在一个 aspx 页面中有两个数据列表。我需要确保每个数据列表只能选择一个单选按钮。但是,我只能对这两个数据列表执行此操作,这意味着当我单击 datalist1 上的单选按钮以及在 datalist2 上选择另一个单选按钮时,它只允许我选择一个单选按钮。我需要做到,当我在 datalist1 上选择一个单选按钮时,我也可以在 datalist2 上选择另一个。

有人可以帮我吗?

下面是aspx页面中的javascript。

<script type="text/javascript" language="javascript">

function CheckOnes(spanChk) {


    var oItem = spanChk.children;
    var theBox = (spanChk.type == "radio")
    spanChk : spanChk.children.item[0];

    xState = theBox.unchecked;
    elm = theBox.form.elements;

    for (i = 0; i < elm.length; i++)
        if (elm[i].type == "radio" && elm[i].id != theBox.id) {
            elm[i].checked = xState;
        }
    }

    function CheckTwos(spanChk2) {


        var oItem2 = spanChk2.children;
        var theBox2 = (spanChk2.type == "radio")
        spanChk2 : spanChk2.children.item[0];

        xState2 = theBox2.unchecked;
        elm2 = theBox2.form.elements;

        for (i = 0; i < elm2.length; i++)
            if (elm2[i].type == "radio" && elm2[i].id != theBox2.id) {
                elm2[i].checked = xState2;
            }
    }

下面是aspx.cs中的代码

protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
    RadioButton rdb;
    rdb = (RadioButton)e.Item.FindControl("radioDelete");
    if (rdb != null) 
       rdb.Attributes.Add("onclick", "CheckTwos(this);");
}

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    RadioButton rdb;
    rdb = (RadioButton)e.Item.FindControl("radioAdd");
    if (rdb != null)
        rdb.Attributes.Add("onclick", "CheckOnes(this);");

}

【问题讨论】:

  • 当您将“this”传递给 CheckOnes/CheckTwos 时,它基本上会查找容器页面中的所有单选按钮。而是传递单个 DataList 实例并检查。
  • 这意味着我将其更改为 CheckOnes(DataList1) 和 CheckTwos(DataList2) ?
  • 应该是 (sender as DataList) 而不是 (this)
  • rdb.Attributes.Add("onclick", "CheckOnes(sender as DataList);"); ?还是不行。

标签: c# javascript radio-button datalist


【解决方案1】:

您只需要让任何一组单选按钮具有相同的名称。

Group1 :
    <input type="radio" name="group1" />
    <input type="radio" name="group1" />
Group2 :
    <input type="radio" name="group2" />
    <input type="radio" name="group2" />
Group3 :
    <input type="radio" name="group3" />
    <input type="radio" name="group3" />

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2016-12-26
    • 2016-04-13
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2014-07-18
    • 2016-01-16
    • 2016-09-12
    相关资源
    最近更新 更多