Два списка данных с переключателем на одной странице aspx

У меня есть два списка данных на одной странице aspx. Мне нужно убедиться, что для каждого списка данных можно выбрать только одну радиокнопку. Однако мне удается сделать это только для обоих списков данных, что означает, что когда я нажимаю радиокнопку в списке данных1 и когда я выбираю другую радиокнопку в списке данных2, это позволяет мне выбрать только одну радиокнопку. Мне нужно сделать так, чтобы при выборе одного переключателя в datalist1 я также мог выбрать другой в datalist2.

Кто-нибудь может мне помочь?

Ниже приведен javascript на странице aspx.

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

}

person FredHomme    schedule 06.01.2013    source источник
comment
Когда вы передаете это CheckOnes/CheckTwos, он в основном ищет все радиокнопки на странице контейнера. Вместо этого передайте отдельный экземпляр DataList и проверьте.   -  person prthrokz    schedule 06.01.2013
comment
Что означает, что я меняю его на CheckOnes (DataList1) и CheckTwos (DataList2)?   -  person FredHomme    schedule 06.01.2013
comment
Это должно быть (отправитель как DataList) вместо (этого)   -  person prthrokz    schedule 06.01.2013
comment
rdb.Attributes.Add(onclick, CheckOnes(sender as DataList);); ? Это все еще не работает.   -  person FredHomme    schedule 06.01.2013


Ответы (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" />
person ncn corp    schedule 07.01.2013