vi spiego la situazione ho un datagrid che visualizza i dati inseriti fino a quel momento !
cliccando su modifica vengono visualizzati i dati inseriti abilitati per la modifica (i campi sono due un textBox per il titolo della news e una textArea per il testo vero e proprio della news)
questo è il codice che associo al link che conferma la modifica
function UpdateDataStore(e as DataGridCommandEventArgs) as boolean
dim i,j as integer
dim params(2) as string
dim strText as string
dim blnGo as boolean = true
j = 0
for i = 1 to e.Item.Cells.Count - 3
strText = Ctype(e.Item.Cells(i).Controls(0), TextBox).Text
if strText <> "" then
params(j) = strText
j = j + 1
else
blnGo = false
lblMessage.Text = "Non hai inserito un valore"
end if
next
if not blnGo then
return false
exit function
end if
dim strSQL as string = "UPDATE tbnews SET titolo = '"& Replace(params(0), "'" , "''") & "', testo = '"& Replace(params(1), "'" , "''") & "'" & _
" WHERE id = " & CType(e.item.cells(0).Controls(1), Label).Text
ExecuteStatement(strSQL)
return blnGo
end function
mentre questa è la tecnica che utilizzo per visualizzare una textArea in fase di modifica al posto del classico TextBox
<asp:TemplateColumn HeaderText="Testo News">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "testo") %>
</ItemTemplate>
<EditItemTemplate>
<nobr />
<asp:TextBox runat="server" width="500" TextMode="MultiLine" Rows="15" id="testo" Text='<%# DataBinder.Eval(Container.DataItem, "testo") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
poi ovviamente ho le altre colonne!!!
l'errore me lo da in questa riga
strText = Ctype(e.Item.Cells(i).Controls(0), TextBox).Text
System.InvalidCastException: Cast specificato non valido.
come posso fare?