Ciao a tutti ho un datagrid dove modifico i campi della lista con un edit template.
Però mi da un errore su un campo di dipo dropdown. Ma non capisco il perchè.
Ecco il codice che uso:
codice:
<asp:DataGrid id="lista" runat="server" Width="500px" OnCancelCommand="CancelCommand" OnUpdateCommand="UpdateCommand"
OnEditCommand="EditCommand" ItemStyle-CssClass="testo" HeaderStyle-CssClass="titoletti"
BorderStyle="None" AutoGenerateColumns="False" DataKeyField="id_categoria_rubrica">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
Riferimento
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("riferimento")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="Area" runat="server" CssClass="input">
<asp:ListItem>Magazine</asp:ListItem>
<asp:ListItem>Community</asp:ListItem>
<asp:ListItem>ByNight</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Categoria
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("categoria_rubrica")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtUsername" Width="60" Runat="server" CssClass="input" Text='<%#Container.DataItem("username")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Categoria
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("categoria_rubrica")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtPasswd" Width="60" Runat="server" CssClass="input" Text='<%#Container.DataItem("passwd")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Categoria
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("riferimento")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtRif" Width="80" Runat="server" CssClass="input" Text='<%#Container.DataItem("riferimento")%>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Modifica" CancelText="Elimina" EditText="Edit!" ></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
Ecco quello vb
codice:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
connetti()
If Not Page.IsPostBack Then
'Try
strsql = "Select Rubricareporter.id_rubricante, Rubricareporter.riferimento, Categorierubriche.id_categoria_rubrica, Categorierubriche.categoria_rubrica From Categorierubriche, Rubricareporter where Rubricareporter.id_rubricante=Categorierubriche.id_rubricante"
cmdSql = New OdbcCommand(strsql, conn)
rs = cmdSql.ExecuteReader()
lista.DataSource = rs
lista.DataBind()
rs.Close()
'Catch ex As Exception
' messaggio.Text = "Errore: " & ex.Message()
'Finally
conn.Close()
'End Try
End If
End Sub
Protected Sub EditCommand(ByVal a As Object, ByVal e As DataGridCommandEventArgs)
'Dim i As Integer
Dim idCat As String
idCat = lista.DataKeys(e.Item.ItemIndex)
lista.EditItemIndex = e.Item.ItemIndex
BindDataGrid()
'Dim drVis As DropDownList = DirectCast(dgi.FindControl("drVisibile"), DropDownList)
Dim dgi As DataGridItem = lista.Items(lista.EditItemIndex)
'L ERRORE è QUI!!!!!
Dim Area As DropDownList = DirectCast(dgi.FindControl("Area"), DropDownList)
connetti()
Try
'strsql = "Select * From Admin"
' cmdSql = New OdbcCommand(strsql, conn)
'rs = cmdSql.ExecuteReader()
'Area.DataSource = rs
'Area.DataTextField = "area"
'Area.DataValueField = "area"
'Area.DataBind()
'rs.Close()
Catch ex As Exception
messaggio.Text = "Errore: " & ex.Message()
Finally
conn.Close()
End Try
End Sub
grazie a tutti per l'aiuto