Insert su griglia
Fase 1: Impostare la pagina
Prima di tutto non ho usato la Proprietà caption della GridView
Ho inserito il seguente codice prima della griglia
Percorso <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Descrizione <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
Pagina <asp:CheckBox ID="CheckBox1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Inserisci" CssClass="Pulsante" />
E subito dopo la GridView così configurata
<asp:GridView ID="GridView2" runat="server" AllowPaging="True" BackColor="White" AllowSorting="True"
BorderColor="#E7E7FF" BorderStyle="Ridge" BorderWidth="2px" Font-Bold="True"
CellPadding="3" GridLines="Horizontal" PageSize="20" Width="800px"
AutoGenerateColumns="False" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True"
EmptyDataText="Link non Configurati" DataSourceID="Link"
DataKeyNames="Id" >
<FooterStyle BackColor="#B5C7DE" Height="30px" ForeColor="#4A3C8C" />
<RowStyle BackColor="#E7E7FF" Font-Bold="False" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<HeaderStyle BackColor="Lavender" Font-Bold="True" ForeColor="Black" />
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
<asp:BoundField DataField="Collegamento" HeaderText="Percorso" SortExpression="Collegamento" />
<asp:BoundField DataField="Descrizione" HeaderText="Descrizione" SortExpression="Descrizione" />
<asp:CheckBoxField DataField="Pagina" HeaderText="Pagina" SortExpression="Pagina" />
<asp:BoundField DataField="fk_Utente" HeaderText="fk_Utente" ReadOnly="True" Visible="False" />
<asp:BoundField DataField="Id" HeaderText="Id" Visible="False" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="Link" runat="server" ConnectionString="<%$ ConnectionStrings:M10ConnectionString %>"
SelectCommand="SELECT Office.Link.* FROM Office.Link WHERE [fk_Utente] = @fk_Utente"
DeleteCommand="DELETE FROM Office.[Link] WHERE [Id] = @Id"
UpdateCommand="UPDATE Office.[Link] SET [Collegamento] = @Collegamento, [Descrizione] = @Descrizione, [Pagina] = @Pagina WHERE [Id] = @Id">
<UpdateParameters>
<asp

arameter Name="Collegamento" Type="String" />
<asp

arameter Name="Descrizione" Type="String" />
<asp

arameter Name="Pagina" Type="Boolean" />
<asp

arameter Name="Id" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:SessionParameter Type="int32" SessionField="IdUtente" Name="fk_Utente" />
</SelectParameters>
<DeleteParameters>
<asp

arameter Name="Id" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
Da notare che non ho inserito il campo fk_utente nei parametri Update perchè essendo nascosto quando si va a modificare il record viene impostato a Null, e nel mio caso ciò non è possibile, in quanto è un campo obbligatorio
Fase 2: Un pò di codice VB.NET
Questo è il codice che va inserito nell'evento Click del pulsante "Inserisci"
Dim conn As Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("stringadiconnessione").ConnectionString)
Dim myCommand As Data.SqlClient.SqlCommand = New Data.SqlClient.SqlCommand( _
"INSERT INTO Office.Link(fk_Utente, Collegamento, Pagina, Descrizione) VALUES" & _
" (@fk_Utente, @Collegamento, @Pagina, @Descrizione)", conn)
If Trim(TextBox1.Text) <> "" Then
myCommand.Connection = conn
myCommand.Connection.Open()
myCommand.Parameters.AddWithValue("@fk_Utente", Session("IdUtente"))
myCommand.Parameters.AddWithValue("@Collegamento", Me.TextBox1.Text)
myCommand.Parameters.AddWithValue("@Pagina", Me.CheckBox1.Checked)
myCommand.Parameters.AddWithValue("@Descrizione", Me.TextBox2.Text)
Try
myCommand.ExecuteNonQuery()
Catch err As Data.SqlClient.SqlException
MsgBox(err.Errors.ToString)
Exit Sub
End Try
myCommand.Connection.Close()
Response.Redirect("Link.aspx")
End If