DropDownList - UpdatePanel - SystemColors

DropDownList-UpdatePanel-SystemColors üçlemesini göreceğiz bu derste.

Merhaba Arkadaşlar,

Bugün yaptığım bir projede,kendime ait bir ColorBox oluşturmam gerekti.Sanırım bunu javascriptle yapmak mümkündü;Ancak javascript bilgim ve zamanım az olduğu için, bir DDL(DropDownList) ile sistemin tüm renklerini çekip seçili olanı yan tarafta kullanıcıya gösteren bir kod parçası yazdım. Sayfanın ikide bir postBack olmaması için de UpdatePanel kullandım. Projede epey karmaşık bir yapı olduğu için Trigger kullanmak zorunda kaldım; Ancak burda en basit hali ile anlatacağım.Her zaman dediğim gibi geliştirmek size kalmış. Tabi sorularınız olursa elimden geldiğince yardımcı olmaya çalışacağım...
İşe ilk önce sayfanın tasarımından başlayalım. Tasarım dediğime bakmayın siz. Örnek olması açısından rasgele yerleştiriyorum ben yapıları, siz kendiniz için gerekli dizaynı yaparsınız.

.aspx Sayfası :


<form id="form1" runat="server">

    <asp:ScriptManager ID="ScriptManager1" runat="server">

    </asp:ScriptManager>

        <div>

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">

            <ContentTemplate>

                <div>

                    <aspropDownList ID="DDList" runat="server"  AutoPostBack="true"

                        onselectedindexchanged="DDList_SelectedIndexChanged">

                    </aspropDownList>

                </div>

                <br /><br />

                <div>

                    <asp:Panel ID="pnl" runat="server" Height="250px" Width="250px">

                    </asp:Panel>

                </div>

            </ContentTemplate>

            </asp:UpdatePanel>

        </div>

    </form>



Artık üç aşağı beş yukarı herkes update panel ve ajax kontrollerinin ScriptManager'siz çalışmadığını biliyordur.

Yukardaki kod satırlarında dikkat edilmesi gereken en önemli nokta DDL'nin AutoPostBack özelliğinin True olmasıdır,aksi takdirde kod çalışmaz.Kendiniz görmeniz açısından denemesini yaparsınız artık.Ben burda bir de panel kullandım.DDL'nin değeri değiştiğinde Panelin arkaplan rengini,DDL de seçilen renk ile değiştiriyorum.

Gelelim arka taraftaki kodcuklara :


protected void Page_Load(object sender, EventArgs e)

        {

            if (!Page.IsPostBack)

            {

                foreach (string sColor in Enum.GetNames(typeof(System.Drawing.KnownColor)))

                {

                    DDList.Items.Add(sColor);

                }

                pnl.BackColor = System.Drawing.ColorTranslator.FromHtml(DDList.SelectedItem.Text);

            }

        }



        protected void DDList_SelectedIndexChanged(object sender, EventArgs e)

        {

            pnl.BackColor = System.Drawing.ColorTranslator.FromHtml(DDList.SelectedItem.Text);

        }



Sayfanın Load kısmına bir for döngüsü ile sistemdeki bilinen tüm renkleri alıp ekliyorum.!Page.IsPostBack kontrolünü yapmamın sebebi,sayfa her post edildiğinde bu renkleri tekrar tekrar çekip üstüne aynı şeyleri eklemesin.Bunu yapmanın bir diğer yolu da Page
Load fonksiyonuna


DDList.Items.Clear();



yazarak,her seferinde DDL'nin içini boşaltıp doldurmaktır.

Daha sonra DDL'nin SelectedIndexChanged fonksiyonuna panel'in renk değiştirme kodlarını yazıyoruz.

Temel kullanımını anlattım ben size,amacınıza göre şekillendirmek size kalmış arkadaşlar...

İyi çalışmalar...
  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git