2008-11-20 13 views
7

Bir datagrid ile çalışmam ve gridin ele alması gereken birkaç koşullu isteği olduğu için PageInit'e dinamik olarak sütun eklemem gereken bir durumum var. BoundColumns ve ButtonColumns ile kolayca hareket ediyorum, bunlar kolay. Sorun kod aracılığıyla bir TemplateColumn oluşturulmasıdır. ITemplate uygulamasını kullanan bir sınıf oluşturarak, dinamik olarak denetimleri ekleyen bir özel sınıf oluşturma konusunda örnekler buldum. Bununla birlikte, bu işe yarıyor, elementleri nasıl bağlayacağım ile mücadele ediyorum.Codebehind öğesindeki ITemplate ve DataGrid Sütunu

Şebekemde <% = DataBinder.Eval (Container.DataItem, "MyValue")%> veya benzerlerini kullanmıştım, ancak bu bir seçenek değil. Kapsayıcı ITemplate içinde bir veri öğesi özelliği yoksa, oraya bağlanamıyorum. Herkesin yardımcı olabilecek tavsiyeleri veya bağlantıları var, google'da doğru şeyleri bulamıyorum.

cevap

8

Bir olay işleyicisini, this MSDN Article'daki gibi ITemplate.InstantiateIn içinde oluşturduğunuz denetimlerin DataBinding olayına ekleyebilirsiniz. Gönderici kontrol olacak ve NamingContainer özelliği, ihtiyacınız olan her türlü bilgiyi almak için kullanabileceğiniz DataItem'e referans veren DataGridItem olacaktır.

+0

Awesome! Aradığım makale bu. Bunu yapmak için ne büyük bir PITA .... –

+0

+1 faydalı link için, aynı zamanda bu bir göz atın http://aspalliance.com/1125_Dynamically_Templated_GridView_with_Edit_Delete_and_Insert_Options.3 –