Datalist içinde RadioButton Gruplamak !

İlkten çok basit gibi görünen bir durum, fakat uğraşmaya başlayınca durumun böyle olmadığını görüyorsunuz. Senaryomuz şu şekilde;
verileri listelediğimiz bir DataList nesnemiz var, her satırın başında
bir RadioButton bulunuyor, biz kullanıcının sadece bir tane seçim
yapmasını istiyoruz (Şekil 1). Bir nevi RadioButtonList nesnesinin
yaptığı işi DataList içinde yapmak istiyoruz. Yaptığım araştırmalarda

CodePorject
de bir .dll sayesinde yapıldığını gördüm, fakat projeye bu .dll
yi eklemek işime gelmedi. Aklıma bu işin Javascript’ le çözülebileceği geldi ve
aramalarımı bu yönde sürdürdüm, en sonunda aradığım betiği buldum ve çok mutlu
oldum :) Sizlerlede paylaşmak istedim :)

 
Şekil 1

JavaScript Kodumuz

<script type="text/javascript">
function clickit() {
        var doc=document.all;
        var el=event.srcElement;
        if(el.tagName=="INPUT"&&el.type.toLowerCase()=="radio")
        {
                for(i=0;i<doc.length;i++)
                {
                        if(doc[i].tagName=="INPUT"&&doc[i].type.toLowerCase()=="radio")
                        {
                                doc[i].checked=false;
                        }
                }
        }
        el.checked=true;
}
</script>

Kullanımı ise şu şekilde

<asp:RadioButton ID="RadioButton1" runat="server" onclick="clickit();"/>
  • http://cankaya.net.tr can kaya

    mozillada calısıyor mu acaba bir kontrol eder misin ?

  • http://otosoft.com Özer Şengezer

    Başarılı bir çalışma. Tşkler

  • http://www.oGan.org OGAN

    Peki radiobuttonlara id nasıl atanır ve aşağıdan gönder butonuna basıldığında seçilen radio butonuna o atadığımız ID i nasıl alabiliriz?

  • http://a apoStyLEE

    http://www.apostylee.com/aspnet-ddownlist-checkboxlist-ve-radiobuttonlist-kontrollerinin-kullanimi.html burada bazı kontrolleri anlatmıştım. Radio butondan id almak için radibutton.ID demeniz yeterlidir. ID atamak içinse Radio butonu dinamik olarak oluşturmanız gerekir.

  • İsa Duma

    Hiç gerek yok hocam aslında.Sizin yukarıdaki örnekten gidersek.

    Gridview içerisine <input type="radio" name="bnkPayment" value='' /> bnkPayment name değeri eklerseniz.

    Değeri de Request[“bnkPayment”].ToString() elde edebilirsiniz.Böylece hangi ödeme seçeneğini seçildiğini anlayabilrisiniz.

  • Abdullah

    gayet iyi bir iş Teşekkürler

  • enes

    mozillada çalışmıyor kardeş varmı çözüm?

  • apoStyLEE

    @İsa kesinlikle haklısın :) adaş teşekkürler, @enes @İsa arkadaşımızın dediği şekilde problemini kolaylıkla çözebilirsin ;)

  • Alipaşa

    Datalistin içerisinie birtane literal ekle aşagıdaki gibi ItemDatabound da da

    Int32 count = 0;
    protected void dtAdres_ItemDataBound(object sender, DataListItemEventArgs e)
    {
    if (e.Item != null && e.Item.DataItem != null)
    {
    Literal lidRdBtn = (Literal)e.Item.FindControl(“lidRdBtn”);

    StringBuilder sb = new StringBuilder();
    uye_adre adres = (uye_adre)e.Item.DataItem;

    if (count == 0 )
    {
    //BURADA İLK GELEN DATA CHECKED OLUR
    count++;
    sb.Append(“”);
    }
    else
    {
    sb.Append(“”);
    }

    lidRdBtn.Text = sb.ToString();
    }
    }

  • Emre

    Firefox ta kod patlıyor… Firefox için bir çöüm varmı?

  • Recep

    Emeğenize sağlık hocam.Dış borç ödemiş gibi oldum :D