ASP. NET. Object Data Source 2 ASP. NET. Object Data Source ASP. NET. Object Data Source ASP. NET. Object Data Source ASP. NET. Object Data Source <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteSubCategoria" InsertMethod="InsertSubCategoria" SelectMethod="FiltrarSubCategoria" TypeName="ClaseSubCategorias" UpdateMethod="UpdateSubCategoria"> <DeleteParameters> <asp:Parameter Name="Codigo" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Codigo" Type="Int32" /> <asp:Parameter Name="Nombre" Type="String" /> <asp:Parameter Name="IdCategoria" Type="Int32" /> <asp:Parameter Name="Ciencias" Type="Boolean" /> </InsertParameters> ASP. NET. Object Data Source Modificar ASP. NET. Grid View ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Listar datos. ASP. NET. GridView. Listar datos. Añadir columna Editar columna ASP. NET. GridView. Listar datos. Editar columna ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Eliminar. Pero si queremos que realmente borre es MUY importante indicar la columna índice con la propiedad DataKeyNames ASP. NET. GridView. Eliminar. Confirmar borrado. ASP. NET. GridView. Eliminar. Confirmar borrado. En realidad esto se tendría que hacer por programación para determinar el idioma. Para ello usamos el evento “PreRender” del control que dispara el delete. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Modificar. Pero si queremos que realmente actualice al pulsar sobre aceptar es MUY importante indicar la columna índice con la propiedad DataKeyNames ASP. NET. GridView. Modificar. No queremos que edite ASP. NET. GridView. Modificar. No queremos que edite ASP. NET. GridView. Modificar. ASP. NET. GridView. Modificar. <ItemTemplate> <asp:Label ID="Label1" runat="server" Text= '<%# Bind("IdCategoria") %>' onprerender="Label1_PreRender" > </asp:Label> </ItemTemplate> protected void Label1_PreRender(object sender, EventArgs e) { Label m = (Label)sender; m.Text = “Soy “ + m.Text; } ASP. NET. GridView. Ejercicio. • Se trata de trasformar IdCategoria usando la ClaseCategoria de un número a la descripción. • Hay que validar que cuando se edite nombre el texto tenga al menos 3 caracteres, en caso contrario que de un aviso y que no deje actualizar. ASP. NET. GridView. Ejercicio. • Se trata de trasformar IdCategoria usando la ClaseCategoria de un número a la descripción. • Hay que validar que cuando se edite nombre el texto tenga entre 3 y 50 caracteres, en caso contrario que de un aviso y que no deje actualizar. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Seleccionar. double.Parse(GridView1.SelectedDataKey.Value.ToString()) OJO al GridView1.DataBind(); ASP. NET. GridView. Ejercicio. Pensar cómo hacer una selección múltiple. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Apariencia AJAX(filtrar) ASP. NET. GridView. Paginar. ASP. NET. GridView. Paginar. ASP. NET. GridView. Ejercicio. Se sabe porque el linkButton está desactivado y enmarcado en rojo. Podemos ir a la primera página (<<) o a la última (<<). ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Ordenar. ASP. NET. GridView. Ordenar. ObjectDataSource1.SelectParameters["campoOrden"].DefaultValue = e.SortExpression.ToString(); e.Cancel = true; ASP. NET. GridView. Ejercicio. Con ayuda del parámetro “tipoOrden” que tiene ObjectDataSource hacer que la ordenación sea ascendente (el valor del parámetro será “asc”)/descendente (el valor del parámetro será “desc”) cada vez que se vuelve a pulsar sobre una columna ordenada. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Insertar. ASP. NET. GridView. Insertar. ASP. NET. GridView. Insertar. protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { GridView1.DataBind(); if (e.CommandName == "Insertar") { GridView1.FooterRow.Visible = true; ((LinkButton)GridView1.BottomPagerRow.FindControl("Insertar")).Visible = false; } } ASP. NET. GridView. Insertar. if (e.CommandName == "InsAceptar") { ObjectDataSource1.Insert(); ((LinkButton)GridView1.BottomPagerRow.FindControl("Insertar")).Visible = true; //Con esta instrucción obligamos que GridView vaya a la última página GridView1.PageIndex = GridView1.PageCount; } ASP. NET. GridView. Insertar. protected void ObjectDataSource1_Inserting(object sender, ObjectDataSourceMethodEventArgs e) { e.InputParameters["Nombre"] = ((TextBox)GridView1.FooterRow.FindControl("INombre")).Text; e.InputParameters["Ciencias"] = (((CheckBox)GridView1.FooterRow.FindControl("ICiencias")).Checked) ? "True" : "False"; e.InputParameters["IdCategoria"] = ((DropDownList)GridView1.FooterRow.FindControl("IIdCategoria")).SelectedValue; GridView1.DataBind(); } ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Ejercicio. Conseguir que pinchando sobre “Insertar el primero” aparezca una el footerRow con el formulario para insertar el primer dato. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Apariencia. ASP. NET. GridView. Apariencia. ASP. NET. Grid View Listar datos. Eliminar Modificar Seleccionar Paginar datos Ordenar datos Insertar Sin datos Apariencia AJAX(filtrar) ASP. NET. GridView. Ejercicio. ASP. NET. Gracias MAS INFORMACIÓN (WEB) http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.gridview.pagertemplate %28v=vs.80%29.aspx