GRACIAS



| |||
Checkbox en datagrid Hola , quisiera solamente hacer esta pregunta , tengo un datagrid con checkbox , y quiero que cuando haga click se me pinte la fila,(tipo Hotmail) pero que sea del lado del cliente , lo logre hacer pero del lado del servidor y me dijeron que no es optimo y que la haga del lado del cliente pero no se como hacerlo , si me pueden ayudar se los agradeceria, disculpen las molestias GRACIAS ![]() ![]() ![]()
__________________ Mas vale morir de pie que vivir de rodillas :ojotes: |
| |||
Hola, puedes usar javascript que se ejecuta en el cliente. Debes dar id's al checkbox y luego usar el document.GetElementByid("id del datagrid"). Perdona que no sea mas explicito, pero creo que se puede hacer asi. Voy a mirarlo por ahi. Si lo descubres, dime como lo has hecho. |
| |||
Gracias por contestar , pero la verdad no tengo ni idea de javascript si me puedes tirar alguna ayuda conceptual lo averigüo millones de gracias
__________________ Mas vale morir de pie que vivir de rodillas :ojotes: |
| ||||
Te mando un ejemplo... Supongamos que tiene sun datagrid con la siguiente estructura: Cita: Cuando llenes tu datagrid lo que vas a hacer es localizar el checkbox para asociarle el evento click y asignarle un ID a la fila para poder hacer despues la referencia en el evento ItemDataBound ... tu code quedaría:<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# Container.DataItem("Campo1") %> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn> <ItemTemplate> <%# Container.DataItem("Campo2") %> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn> <ItemTemplate> <asp:CheckBox Runat="server" ID="chkOption"></asp:CheckBox> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> Cita: Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then Dim chk As CheckBox = CType(e.Item.FindControl("chkOption"), CheckBox) chk.Attributes.Add("onclick", "markRow('" + e.Item.ClientID + "',this)") e.Item.Attributes.Add("id", e.Item.ClientID) End If End Sub Y finalmente tu javascript quedaría: (dentro de los headers), donde recibe 2 parámetros... el id la fila y el objeto checkbox... ![]() Cita: Y listo.. cuando des click se iluminará la columna seleccionada y viceversa..<script language=javascript> function markRow(obj,chk) { if (chk.checked) { obj = document.getElementById(obj); obj.style.backgroundColor = 'red'; } else { obj = document.getElementById(obj); obj.style.backgroundColor = 'white'; } } </script> Espero haber sido claro y que te haya servido ![]() Salu2
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| |||
|