Να συμπληρώσω στις προτάσεις των GJC και Kelman:
Για edit στον Table C: Katasthmata:
1. Σχετικά εύκολη λύση
Κάνεις bind στον πίνακα Table C: Katasthmata
Στο dataview στο item template συνδέεις το OikismosID 2 φορές
α. με ένα dropdown που το έχεις ανενεργό για να δείχνεις τον οικισμό
β. επίσης με ένα drop down που το έχεις ανενεργό που με join query δείχνει τον δήμο
Στο edit templete έχεις μόνο το α. dropdown και κάνεις edit μόνο τον OikismosID.
Η λύση αυτή είναι λίγο αργή.
2. Πιο περίπλοκη λύση:
Ομοίως με 1. αλλά στο item template αντί να έχεις ανενεργά dropdown έχεις δικά σου control
π.χ. (to παράδειγμα είναι με κωδικούς και περιγραφές μοναδων μέτρησης)
Public Class MonadesMetrisisLabel
Inherits Label
Public Property SelectedValue() As Int64
Get
Return Me.ViewState("fldMonadaMetrisisID")
End Get
Set(ByVal value As Int64)
If Not Me.DesignMode Then
Me.ViewState("fldMonadaMetrisisID") = value
If Not IsNothing(value) Then
Dim TheItem As BLL.tblMonadesMetrisis = DAL.tblMonadesMetrisisFactory.GetByPK(SelectedValue)
If TheItem IsNot Nothing Then
MyBase.Text = String.Format("{0}", TheItem.fldMonadaMetrisisDescription)
Else
MyBase.Text = ""
End If
Else
MyBase.Text = ""
End If
End If
End Set
End Property
End Class
και κάνεις bind στο SelectedValue πάλι
(FTR o κώδικας είναι του Abot)
3. Άλλες προτάσεις :
Αν θέλεις στο edit template να επιλέγεις πρώτα τον δήμο και μετά τον οικισμό - στην πιθανή περίπτωση που οι οικισμοί είναι πολλοί και θες να τους φιλτράρεις πρώτα -τότε θα πρέπει να έχεις και εκεί 2 dropdown και να πιάνεις στο SelectedValue changed event του dropdown με τους δήμους και μετα να γεμιζεις το drop down με τους οικισμούς. Δες και λιγο ajax θα κάνει το interface πιο γρήγορο και φιλικό. Γίνεται αρκετά περίπλοκο
Επίσης σε αυτή την περίπτωση ενδέχεται να παίζει και το cascading drop down combo boxes
Δες
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspxΑλλά πρέπει να φτιάξεις webservices κλπ
Καλό ψαξιμο.
Harry Tsavdaris