Ho avuto lo stesso problema: sono stato a livello di codice legando il mio GridView1 a una tabella SQL [dictonary] o un altro [meny] ma quando ho scelto la seconda tabella dalla mia RadioButtonList1, Stavo ricevendo un errore (System.Web.HttpException: campo o proprietà con il titolo [il titolo della prima colonna della tabella precedentemente selezionata] non è stato trovato nell'origine dati selezionata.) Cioè dicendo che le colonne della mia tabella selezionata per prima non è stato trovato Tutto quello che dovevo fare era inserire:
GridView1.Columns.Clear()
prima di aggiungere le colonne della tabella.Qui va il codice completo:
Dim connectionString As String = "your-string-details"
Dim connection As New SqlConnection(connectionString)
Poi viene la tua prima secondaria:
Private Sub BindOrders()
connection.Open()
Dim sqlCommand As String = "SELECT * FROM [dictionary]"
Dim dataAdapter As New SqlDataAdapter(sqlCommand, connection)
Dim dt As New DataTable()
dataAdapter.Fill(dt)
GridView1.Columns.Clear() ' clear columns before adding new ones
If GridView1.Columns.Count <= 0 Then
Dim Field As New BoundField()
Field.DataField = "id"
Field.HeaderText = "id"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArHundreds"
Field.HeaderText = "strArHundreds"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArTens"
Field.HeaderText = "strArTens"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArSingles"
Field.HeaderText = "strArSingles"
GridView1.Columns.Add(Field)
End If
GridView1.DataSource = dt
GridView1.DataBind()
connection.Close()
End Sub
viene Allora la vostra seconda sotto:
Private Sub BindDocuments()
connection.Open()
Dim sqlCommand As String = "SELECT * FROM [meny]"
Dim dataAdapter As New SqlDataAdapter(sqlCommand, connection)
Dim dt As New DataTable()
dataAdapter.Fill(dt)
GridView1.Columns.Clear() ' clear columns before adding new ones
If GridView1.Columns.Count <= 0 Then
Dim Field As New BoundField
Field = New BoundField
Field.DataField = "id"
Field.HeaderText = "id"
GridView1.Columns.Add(Field)
Field = New BoundField
Field.DataField = "nazev"
Field.HeaderText = "nazev"
GridView1.Columns.Add(Field)
End If
GridView1.DataSource = dt
GridView1.DataBind()
connection.Close()
End Sub
finalmente arriva il tuo RadioButton:
Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged
Dim index As Integer
index = RadioButtonList1.SelectedIndex
Select Case index
Case 0
BindOrders()
Exit Select
Case 1
BindDocuments()
Exit Select
End Select
End Sub
Per il completamento, ecco il c ode per la GridView1 e la RadioButtonList1 nella aspx.file associati:
<asp:RadioButtonList ID="RadioButtonList1"
runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
<asp:ListItem>Obraty</asp:ListItem>
<asp:ListItem>Dokumenty</asp:ListItem>
</asp:RadioButtonList>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
</asp:GridView>
Tutto questo funziona bene ora.
Si dice che non può cancellare questa lista .. È perché sto usando una tabella di database come origine dati? –