2010-06-04 23 views
6

Potrzebuję zapewnić użytkownikom możliwość edytowania tabel w ASP.Net. Tabele są proste (brak relacji mistrz/szczegół), ale prawdopodobnie jest ich dużo. Jaki jest najszybszy/najprostszy sposób na udostępnienie widoku/edycji interfejsu do tabeli, nawet biorąc pod uwagę opcje komercyjne (ale nie program Iron Speed ​​Designer.) To coś jest absurdalnie kosztowne dla tego, czego potrzebuję?Edycja tabel za pomocą ASP.Net - Szybkie "n Brudne

W najprostszej/idealnej konfiguracji chciałbym wskazać kontrolkę przy stole i gotowe. Spojrzałem na kilka rozwiązań ORM, ale wszystkie starają się być szwajcarskim nożem wojskowym, który po prostu nakłada się na złożoność i stają się bestiami dla siebie.

Czy jest coś szalonego, co może mi pomóc? Czy powinienem po prostu zanurkować w SubSonic lub coś podobnego?

+0

Wygląda na to, że Dynamic Data wygrywa, ale czy ktoś ma dobry wgląd w SubSonic vs. Dynamic Data? SubSonic to projekt Haacka, prawda? Więc oboje pochodzą teraz z Microsoftu? Czy ktokolwiek może powiedzieć o różnicach na temat wysokości windy? Może nawet szybkie demo podobne do tego, które łączył Graham Clark? To zdanie dodano, aby cały mój komentarz nie składał się z pytań. –

+0

SubSonic nie jest projektem firmy Haack, ani Microsoftu, ale uważam, że Phil Haack przyczynił się do SubSonic. SubSonic to ORM i wygląda na to, że nie chcesz ORM. –

Odpowiedz

5

Po kilku badaniach, najszybszą rzeczą, jaką znalazłem okazało się po prostu użycie linq do sql z GridView. Szukałem rozwiązania, które można łatwo zintegrować z istniejącymi stronami. Bez korzyści z automatycznego rusztowania i wygenerowanych stron, Dynamic Data kinda pomija znak. 99% tego, czego chciałem, było unikanie pisania instrukcji SQL i ręcznego obsługiwania UpdateCommands.

Oto kroki, które napisałem dla własnego odniesienia. To zależy w dużej mierze od projektantów, ale za to, co muszę, to jest idealne:

  1. Nowy projekt (lub istniejący projekt)
  2. Dodaj plik LinqToSqlClass do projektu
  3. Dodaj odpowiednich tabel ze źródła danych do projektowania powierzchni (użyj Eksploratora serwera)
  4. build (aby datacontext klasa dostanie wygenerowany)
  5. Przejdź do aspx strona
  6. Przeciąganie obiektów LinqDataSource z przybornika.
  7. Konfiguracja źródła danych (upewnij się, aby umożliwić aktualizację, jeśli to konieczne)
  8. Drag GridView z przybornika
  9. Set DataSource do LinqDataSource przedmiot po prostu stworzony
  10. Dostosuj kolumny, jeśli to konieczne (tj ustawić właściwość tylko do odczytu na nieedytowalnych kolumny, ukryj nieistotne kolumny.)

Jeśli chodzi o dane dynamiczne, brakuje dokumentacji. Jest wiele rzeczy, które odwołują się do wcześniejszych wersji, które teraz nie działają tak samo. Oglądałem filmy here i postępowałem zgodnie z instrukcjami here, ale w końcu napotkaliśmy problemy, gdy próbowałem ukryć nieedytowalne kolumny. Instrukcja aktualizacji generowana przez linq nie odwoływała się do klucza podstawowego i otrzymałem błąd Row not found or changed. Poddałem się i zastosowałem powyższe rozwiązanie.

Mam nadzieję, że pomoże to komuś innemu w przyszłości!

4

Wypróbuj DynamicData z microsoft, wbudowany w asp.net 4, dostępny do pobrania dla wcześniejszych wersji.

1
+5

To jest dokładnie to, co robiłem od lat, co sprawia, że ​​chcę wytrzeć oczy ostrym kijem ... –

+0

Proszę oznaczyć wybraną odpowiedź jako odpowiedź (używając zielonego znacznika wyboru). Znalezienie innych odpowiedzi, które nie są optymalne, nie jest sposobem działania StackOverflow. (to jest ta odpowiedź wykonuje zadanie). –

+0

Rozumiem, jak działa SO, i doceniam twój wkład. Może wykonać to zadanie, ale wcale nie jest to, czego szukałem i nie było przydatne w tym przypadku. (kiedy usunięto 24-godzinny limit akceptowania odpowiedzi?) –

5

Dynamic Data jest bardzo łatwy sposób edytować tabele bazy danych poprzez ASP.NET. Nie miałem absolutnie żadnej wiedzy o tym, ale założyłem stronę internetową, aby edytować małą bazę danych w dosłownie 5 minut, używając jednego z Scott Guthrie's blog posts. Zajmował się prostymi kluczowymi relacjami z zagranicą, które miałem.

+0

Dzięki za link. Wygląda bardzo blisko tego, czego chcę. Przyjrzymy się temu dalej. I <3 teh Gu. –