Blog del Pedrico

programación, gestión, opiniones…

ASP.NET – ListView – Comando Insert

Publicado por Pedro en Enero 4, 2009

Para insertar un registro en la base de datos desde un ListView tenemos que tener al menos lo siguiente:

En la página ASPX:

 <asp:ListView Id=”lsvJuegos” runat=”server” DataKeyNames=”IdJuego” DataSourceID=”sqlJuegos” OnItemCommand=”ListadoDeComandos”>
          <LayoutTemplate>
                    <asp:PlaceHolder ID=”itemPlaceHolder” runat=”server”></asp:PlaceHolder>
                    <asp:LinkButton ID=”lnkNuevo” runat=”server” Text=”Pulse aqu¡ para añadir un registro” OnClick=”Nuevo”></asp:LinkButton>
          </LayoutTemplate>
          <ItemTemplate>
                    <p><%#Eval(“NombreJuego”)%>&nbsp;&nbsp;</p>
          </ItemTemplate>
          <InsertItemTemplate>
                    <p>
                              <asp:TextBox ID=”txtNombreInsertando” runat=”server”></asp:TextBox>&nbsp;&nbsp;
                              <asp:LinkButton ID=”lnkGuardaInsertando” runat=”server” CommandName=”GuardarInsertando” Text=”Guardar”></asp:LinkButton>&nbsp;
                              <asp:LinkButton ID=”lnkCancelarInsertando” runat=”server” CommandName=”CancelInsertando” Text=”Cancelar”></asp:LinkButton>
                    </p>
          </InsertItemTemplate>
</asp:ListView>
<asp:Label ID=”lblMensaje” runat=”server”></asp:Label>
<asp:SqlDataSource ID=”sqlJuegos” runat=”server”></asp:SqlDataSource>

En la página de código:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          ‘Enlazar SQL
          sqlJuegos.ConnectionString = “Data Source=.\SQLEXPRESS;AttachDbFilename=’C:\datos\Visual Studio 2008\WebSites\Prueba1\App_Data\Juegos_NDS.mdf’;Integrated Security=True;User Instance=True”
          sqlJuegos.SelectCommand = “SELECT * FROM [Juegos]“
End Sub 

Sub ListadoDeComandos(ByVal sender As Object, ByVal e As ListViewCommandEventArgs)
          Select Case e.CommandName
                   
Case “GuardarInsertando”
                   
Dim NuevoValor As String = CType(e.Item.FindControl(“txtNombreInsertando”), Object ).Text
                   
Dim CadenaSQL As String
                   
CadenaSQL = “INSERT INTO Juegos (NombreJuego) VALUES (‘” & NuevoValor & “‘)”
                   
sqlJuegos.InsertCommand = CadenaSQL
                    sqlJuegos.Insert()
                    sqlJuegos.DataBind()
                    lsvJuegos.InsertItemPosition = InsertItemPosition.None
                    lsvJuegos.FindControl(
“lnkNuevo”).Visible = True
         
Case “CancelInsertando”
                   
lsvJuegos.InsertItemPosition = InsertItemPosition.None
                    lsvJuegos.FindControl(
“lnkNuevo”).Visible = True
          End Select
End Sub

Sub Nuevo()
          lsvJuegos.InsertItemPosition = InsertItemPosition.LastItem
          lsvJuegos.FindControl(
“lnkNuevo”).Visible = False
End Sub

Tal y como está hecho en este ejemplo existe un enlace que mostrará el cuadro de texto para añadir un registro mediante la primera línea de la subrutina Nuevo al mismo tiempo que el enlace se ocultará. Al guardar o cancelar, se oculta el cuadro de texto y se vuelve a mostrar el enlace mediante las dos líneas siguientes:

          lsvJuegos.InsertItemPosition = InsertItemPosition.None
          lsvJuegos.FindControl(
“lnkNuevo”).Visible = True

 

Una respuesta para “ASP.NET – ListView – Comando Insert”

  1. HighTestosterone escribió

    Ojala hubiera tenido esta información hace un par de años atrás cuando estaba en la Universidad, gracias de todos modos a veces tenemos que regresar a buscar esta información.

Escribe un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>