Zajmuję się przygotowaniem dodatku Excel 2007 za pomocą Visual Studio Tools for Office (2008). Mam jeden arkusz z kilkoma obiektami ListObject, które są związane z datatables podczas uruchamiania. Kiedy są związani, automatyzują się poprawnie..NET - Autoryzacja listy obiektów programu ListView w bazie danych
Problem pojawia się, gdy są ponownie powiązane. Mam przycisk niestandardowy na pasku wstążki, który powraca do bazy danych i pobiera różne informacje na podstawie pewnych kryteriów wprowadzanych przez użytkownika. Te nowe dane wraca i jest ponownie związany z ListObjects - jednak tym razem nie są one zmniejszane i uzyskać wyjątek:
ListObject nie może być związany ponieważ nie może być zmieniany w celu dopasowania danych. Obiekt ListObject nie mógł dodać nowych wierszy. Może to być spowodowane brakiem możliwości przenoszenia obiektów poniżej obiektu listy .
wyjątek wewnętrzny: "Włóż metoda klasy zasięgiem failed"
Powód: Microsoft.Office.Tools.Excel.FailureReason.CouldNotResizeListObject
nie udało mi się znaleźć coś bardzo sensowne na ten błąd w Google lub MSDN. Próbowałem to rozgryźć przez chwilę, ale bezskutecznie.
Podstawowa struktura kodu:
//at startup
DataTable tbl = //get from database
listObj1.SetDataBinding(tbl);
DataTable tbl2 = //get from database
listObj2.SetDataBinding(tbl2);
//in buttonClick event handler
DataTable tbl = //get different info from database
//have tried with and without unbinding old source
listObj1.SetDataBinding(tbl); <-- exception here
DataTable tbl2 = //get different info from database
listObj2.SetDataBinding(tbl2);
Zauważ, że ten wyjątek występuje nawet wtedy, gdy ListObject kurczy się, a nie tylko wtedy, gdy rośnie.