Saturday, December 10, 2011

ASPxGridView EditForm kullanırken, Edit formdaki alanların readonly olması durumu

DevExpress ASPXGridView kullanırken EditForm'a geçildiğinde editable alanların readonly olmasının sebebi bind edilen source ile alakalıdır.

* Gride bağlanan binding source readonly olursa, grid edit moduna geçse bile alanlar readonly oluyor. Bu duruma sebep olan başlıca örnek ise, binding kaynağını(Binding Source) LinQ ile anonim bir tip olarak çekilmesi oluyor. Örneğin:


var myBindingSource = from p in NesneKoleksiyonum
                select new
                        {
                            p.NesneId,
                            p.Aciklama,
                        }

gibi anonim tip çıkaran bir source gride bağlandığında sorun oluşuyor.

Bu durumu aşmak için;

1-) Bind edilen kaynağı anonim yapmamak olmamalı. Eğer yukarıdaki gibi bir LinQ sorgusuyla kaynak oluşturuyorsak, sorgu sonucunda bilinen bir tip çekmek:


var myBindingSource = from p in NesneKoleksiyonum
                select p;

gibi.


2-) LinQ sorgularını ToList() ile bitirmek;

var myBindingSource = (from p in NesneKoleksiyonum
                                      select p).ToList();

gibi.


3-) Yok ille de anonim tip bağlayacağım diyorsak, o zaman EditForm için kendimiz Edit Template yazmak:

Yani;


            <Templates>
                <EditForm>
                          .....
                </EditForm>
            </Templates>

işine bulaşmak zorundayız.


No comments:

Post a Comment