2016-08-03 58 views
6

Pracuję nad projektem formularzy starszych okien, które migruję do formularzy internetowych.Ignoruj ​​nieistniejącą kolumnę w zestawie danych (powiązane pole)

Istnieje zbiór danych, które wiążę do widoku siatki.

Wykonałem wszystkie pola graniczne, więc widok siatki nie wygeneruje automatycznie kolumn. Za każdym razem, gdy wiążę ten zestaw danych z siatką, w zestawie danych brakuje niektórych kolumn, więc generowane są błędy dotyczące nieistniejących kolumn.

Czy istnieje sposób, aby zignorować brakujące kolumny w związanych dziedzinach? Jak, usuń powiązaną kolumnę, jeśli nie istnieje ... lub po prostu ją zignoruj?

+0

Dlaczego je wiążą, jeśli nie istnieją? Pomoże ci również, jeśli udostępnisz jakiś kod – lokusking

+0

Dzieje się tak, ponieważ mam trzy różne zestawy danych. Niektóre kolumny są obecne we wszystkich, ale inne kolumny nie. Chciałem to zrobić, więc nie muszę tworzyć trzech oddzielnych gridviewów. – Phiter

+0

Hmmm okej. Czy automatyczne generowanie kolumn w tych Grids an opcja? Czy oprawa obiektu wiąże się z opcją? Czy wykonałeś wiązanie w projektancie lub w kodzie? – lokusking

Odpowiedz

0

musiałem użyć innego podejścia:

ustawić GridView nie mieć kolumny i autogeneratecolumns do false.

Potem stworzył XML z listą wszystkich możliwych kolumn (jest to XML, nie asp.net znaczników)

<Grid ID="grdSenha"> 
     <BoundField HeaderText="Status" /> 
     <BoundField DataField="Flg_Imprimiu" HeaderText="Imprimiu?" Visible="True" /> 
     <BoundField DataField="Nom_Localdest" HeaderText="Local Descarga" Visible="True" /> 
     <BoundField DataField="Dsc_Localdest" HeaderText="Descrição" Visible="True" /> 
     <BoundField DataField="Cod_Produto" HeaderText="Cod Prod" Visible="False" /> 
     <BoundField DataField="Dsc_Produto" HeaderText="Descrição Produto" Visible="True" /> 
     <BoundField DataField="Qtd_Transport" HeaderText="Qtde" Visible="True" /> 
     <BoundField DataField="Cod_Transport" HeaderText="Cod Trans" Visible="False" /> 
     [...] 
</Grid> 

Następnie w moim kodu, chciałbym wybrać z XML tylko kolumny obecne w moim źródle danych (używając klucza DataField as), a następnie odpowiednio utwórz powiązane pola.

Działa doskonale.