configuramos el SQLDataSource para nuestra Base de Datos asi:
la cual contendra una tabla Details con los siguientes valores:
despues de todo esto vamos a la propiedad UpdateQuery para indicarle nuestra consulta:
ahora enlazamos nuestro GridView al SQLDataSource:
ahora nos vamos a la opcion Editar Columnas:
y las columnas ID, Sex y MaritalStatus de tipo BoundField las convierten en TemplateField las columnas convertidas deben quedarles asi:
y agregan una columna tipo CommandField para editar:
Ahora nos vamos a la Opcion Editar Plantillas:
una vez aqui seleccionamos la columna ID y en el label del ItemTemplate damos click en Editar Enlace de Datos, Personalizamos enlace y en Expresion de codigo ponemos Eval("ID") lo mismo con Sex y MaritalStatus, ahora en Sex en EditItemTemplate agregamos un RadioButton y lo personalizamos con las opciones Male, Female.
y lo mismo en MaritalStatus agregamos un DropDownList y lo personalizamos con las opciones Single and Married:
Finalmente dan click en Terminar Edicion de Plantilla. el codigo de la parte html desde el body mas o menos les quedara asi:
<body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound" onrowediting="GridView1_RowEditing" onrowupdated="GridView1_RowUpdated" onrowupdating="GridView1_RowUpdating" DataKeyNames="ID"> <Columns> <asp:TemplateField HeaderText="ID" SortExpression="ID"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:TemplateField HeaderText="Sex" SortExpression="Sex"> <EditItemTemplate> <asp:RadioButtonList ID="RadioButtonList1" runat="server"> <asp:ListItem>Male</asp:ListItem> <asp:ListItem>Female</asp:ListItem> </asp:RadioButtonList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Sex") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="MaritalStatus" SortExpression="MaritalStatus"> <EditItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem>Single</asp:ListItem> <asp:ListItem>Married</asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Eval("MaritalStatus") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [ID], [Name], [Sex], [MaritalStatus] FROM [Details]" UpdateCommand="UPDATE Details SET ID = @ID, Name = @Name, Sex = @Sex, MaritalStatus = @MaritalStatus Where [ID]=@ID"> <UpdateParameters> <asp:Parameter Name="Name" /> <asp:Parameter Name="Sex" /> <asp:Parameter Name="ID" /> <asp:Parameter Name="MaritalStatus" /> </UpdateParameters> </asp:SqlDataSource> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> </div> </form> </body>Los eventos que implementaran para GridView seran: RowDataBound,RowEditing, RowUpdating y RowUpdated.
y el codigo para manejar dichos eventos sera el de abajo:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { DataRowView dRowView = (DataRowView)e.Row.DataItem; if (e.Row.RowType == DataControlRowType.DataRow) { if ((e.Row.RowState & DataControlRowState.Edit) > 0) { RadioButtonList RadioButtonList1 = (RadioButtonList)e.Row.FindControl("RadioButtonList1"); DropDownList DropDownList1 = (DropDownList)e.Row.FindControl("DropDownList1"); RadioButtonList1.SelectedValue = dRowView[2].ToString(); DropDownList1.SelectedValue = dRowView[3].ToString(); } } } protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) { Label1.Text = "Fila actualizada"; } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { Label1.Text = ""; } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { RadioButtonList RadioButtonList1 = (RadioButtonList)GridView1.Rows[e.RowIndex].FindControl("RadioButtonList1"); DropDownList DropDownList1 = (DropDownList)GridView1.Rows[e.RowIndex].FindControl("DropDownList1"); SqlDataSource1.UpdateParameters["Sex"].DefaultValue = RadioButtonList1.SelectedValue; SqlDataSource1.UpdateParameters["MaritalStatus"].DefaultValue = DropDownList1.SelectedValue; }Y a la hora de ejecutar debe salirles asi:
Buenos días, este tutorial sigue activo?
ResponderEliminar