Arkadaşlar ben asp.net projemde dropdownlisti çok kolonlu bir şekilde kullanmak istiyorum. bunu nasıl yapabilirim. ya da buna benzer bir yapı onerirmisiniz. Birden fazla sütun yerleştirilecek şekilde.

soruldu: 23 Mar '15, 10:41

taze_m%C3%BChendis's gravatar image

taze_mühendis
08810
cevap kabul oranı: 0%

1

yapmak istediğini biraz daha açıklayabilir misin. Mümkünse örnek ile...

(23 Mar '15, 11:52) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Mesela hocam 3 dropdownlist var en üsttekini seçtiğimde ikinci liste veriler doluyor. ikinciden bişey seçince üçüncü veriler dropdownliste doluyor. yani veriler birbirine bu şekilde bağlı olacak. bunları update panelle kontrol edeceğim. ama çekeceğim verilerin birden fazla sutününü göstermem gerekiyor. başka türlü nasıl yaparım bilemedim.

(24 Mar '15, 03:00) taze_mühendis taze_m%C3%BChendis's gravatar image

Aspx:

<asp:DropDownList runat="server" ID="ddlIl" AutoPostBack="True" OnSelectedIndexChanged="ddlIl_OnSelectedIndexChanged"/> <br />

<asp:DropDownList runat="server" ID="ddlIlce"/>

CodeBehind :

 protected void Page_Load(object sender, EventArgs e)
         {
             if (!IsPostBack)
             {
                 FillDdlIl();
             }
        }

 protected void ddlIl_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var ddl = sender as DropDownList;
            if (ddl!=null)
            {
                var ilId = Convert.ToInt32(ddl.SelectedValue);
                if (ilId>0)
                {

                    FillDdlIlce(ilId);

                }
            }

        }

public List<Il> GetIls()
        {
            var list = new List<Il>();
            list.Add(new Il(1,"61","Trabzon"));
            list.Add(new Il(2, "34", "İstanbul"));
            list.Add(new Il(3, "06", "Ankara"));

            return list;
        }

        public List<Ilce> GetIlces()
        {
            var list = new List<Ilce>();
            list.Add(new Ilce(1, 1, "Of"));
            list.Add(new Ilce(2, 1, "Sürmene"));
            list.Add(new Ilce(3, 2, "Bahçelievler"));
            list.Add(new Ilce(4, 2, "Bebek")); 
            list.Add(new Ilce(5, 3, "Kızılay"));
            list.Add(new Ilce(6, 3, "Mamak"));

            return list;
        }

private void FillDdlIl()
        {
            var iller = GetIls();
            var list = new List<IlDdlModel>();
            foreach (Il il in iller)
            {
                var model = new IlDdlModel();
                model.Id = il.Id;
                model.IlKoduAdi = il.PlakaKodu + " " + il.IlAdi;
                list.Add(model);
            }

            ddlIl.DataSource = list;
            ddlIl.DataTextField = "IlKoduAdi";
            ddlIl.DataValueField = "Id";
            ddlIl.DataBind();

            ddlIl.Items.Insert(0,new ListItem("İl seçiniz","-1"));

        }

        private void FillDdlIlce(int ilId)
        {
            if (ilId<0)
            {
                ddlIlce.Items.Clear();
                return;
            }

            var ilceler = GetIlces().Where(x=>x.IlId==ilId).ToList();

            ddlIlce.DataSource = ilceler;
            ddlIlce.DataTextField = "IlceAdi";
            ddlIlce.DataValueField = "Id";
            ddlIlce.DataBind();

            ddlIlce.Items.Insert(0, new ListItem("İlce seçiniz", "-1"));

        }

Örnek modeller:

public class Il
    {
        public int Id { get; set; }
        public string  PlakaKodu { get; set; }

        public string IlAdi { get; set; }

        public Il(int id, string plakaKodu, string ilAdi)
        {
            Id = id;
            PlakaKodu = plakaKodu;
            IlAdi = ilAdi;
        }
    }

    public class Ilce
    {
        public int Id { get; set; }

        public int IlId { get; set; }

        public string IlceAdi { get; set; }

        public Ilce(int id, int ilId, string ilceAdi)
        {
            Id = id;
            IlId = ilId;
            IlceAdi = ilceAdi;
        }
    }

    public class IlDdlModel
    {
        public int Id { get; set; }
        public string IlKoduAdi { get; set; }

    }

Yukarıdaki örnek kod parçasında yapmak istediğine benzer bir yapı var. Tabi bu kod postback olmaktadır. Anladım kadarıyla postback yaptırmamak istiyorsun ve bu nedenle UpdatePanel kullanmışsın. Yukarıdaki örnek list lerle çalışan bir örnek tir. İl Plaka kodu ile il Adını dropdownda gösterebilmek için başka bir model tanımladım ve listemi onun içinde doldurup dropdown a bind ettim. Eğer listelerle değilde dataset ile çalışıyor isen iki kolonu birleştirip dropdownda göstermek için aşağıdaki kodu kullanabilirsin.

örneğin şöyle bir sorgumuz olsun:

select id,ilplaka,iladi from TblIl

        DataTable dt = GetIllerToDatatable();
            dt.Columns.Add("IlKoduAdi", typeof(string), "ilplaka+ ' ' + iladi ");

            ddlIl.DataSource = dt;
            ddlIl.DataTextField = "IlKoduAdi";
            ddlIl.DataValueField = "id";
            ddlIl.DataBind();

Yukarıdaki gibi datatable 'a yeni bir kolon ekledik ve dropdownlist te onu gösterdik

İyi çalışmalar.

permanent link

cevaplandı: 24 Mar '15, 07:37

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.5k103690
cevap kabul oranı: 27%

Arkadaşlar lütfen yardımcı olurmusunuz bu kodlarda ddlil.DataBind(); hatası alıyorum sebebi ne olabilir acaba?

asp.net kodları

<asp:dropdownlist id="ddlil" runat="server"></asp:dropdownlist>

<asp:dropdownlist id="ddlilce" runat="server"></asp:dropdownlist>

c# kodları

using System;

using System.Collections.Generic;

using System.Configuration;

using System.Data.SqlClient;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

public partial class search : System.Web.UI.Page { SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString);

protected void Page_Load(object sender, EventArgs e)
{
    Conn.Open();

    if (!IsPostBack)
    {
        ildoldur();
        ilcedoldur();
    }

}
void ildoldur()
{

    SqlDataAdapter da = new SqlDataAdapter("select*from tbl_airport", Conn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    ddlil.DataTextField = "airport_ad";
    ddlil.DataValueField = "indx";
    ddlil.DataSource = dt;
    ddlil.DataBind();

}
void ilcedoldur()
{

    SqlDataAdapter da = new SqlDataAdapter("select*from tbl_bolge where indx="+ddlil.SelectedValue, Conn);
    ddlil.DataTextField = "Bolge_adi";
    ddlil.DataValueField = "airport";
    ddlil.DataSource = da;
    ddlil.DataBind();

}

}

permanent link

cevaplandı: 27 Haz, 01:56

serdar54's gravatar image

serdar54
01
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158
×5
×1

Soruldu: 23 Mar '15, 10:41

Görüntüleme: 711 kez

Son güncelleme: 27 Haz, 01:56

powered by BitNami OSQA