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