CheckBox en un Datagrid

04/08/2004 - 17:23 por JC | Informe spam
puse una columna de checkbox en un datagrid, pero ahora
quiero poner un header con checkbox para que cuando se
seleccione, se seleccionen todos los checkbox

un ejemplo de lo que necesito ahcer lo encontre en este
link:
http://www.developerfusion.com/show/4632/3/

pero siempre he tenido problemas con javascript y los
controles asp.net

me pueden ayduar a que funcione esta rutina? o alguuna
otra que ya hayan hecho?

gracias

function select_deselectAll (chkVal, idVal)
{
var frm = document.forms[0];
// Loop through all elements
for (i=0; i<frm.length; i++)
{
// Look for our Header Template's Checkbox
if (idVal.indexOf ('CheckAll') != -1)
{
// Check if main checkbox is checked, then
select or deselect datagrid checkboxes
if(chkVal == true)
{
frm.elements[i].checked = true;
}
else
{
frm.elements[i].checked = false;
}
// Work here with the Item Template's multiple
checkboxes
}
else if (idVal.indexOf ('DeleteThis') != -1)
{
// Check if any of the checkboxes are not
checked, and then uncheck top select all checkbox
if(frm.elements[i].checked == false)
{
frm.elements[1].checked = false; //Uncheck
main select all checkbox
}
}
}

}


'Datagrid

<asp:datagrid id="DataGrid1" runat="server" Font-Size="X-
Small" AllowSorting="True" Font-Names="Arial"
ShowFooter="True">

<HeaderStyle Font-Size="X-Small"
Font-Names="Arial" HorizontalAlign="Center"
ForeColor="White" BackColor="#C70B0B"></HeaderStyle>

<Columns>

<asp:TemplateColumn>

<HeaderTemplate>


<asp:CheckBox ID="CheckAll" OnClick="javascript:
return select_deselectAll (this.checked, this.id);"
runat="server" />

<font
face="Webdings" color="white" size="4">a</font>

</HeaderTemplate>

<ItemTemplate>


<asp:CheckBox ID="DeleteThis" OnClick="javascript:
return select_deselectAll (this.checked, this.id);"
runat="server" />

</ItemTemplate>

</asp:TemplateColumn>

</Columns>

<FooterStyle Font-Size="X-Small"
Font-Names="Arial" HorizontalAlign="Left"
ForeColor="White" BackColor="#C70B0B"></FooterStyle>

</asp:datagrid>
 

Leer las respuestas

#1 Sergio Florez M.
04/08/2004 - 19:27 | Informe spam
Ya que yo soy todo un analfabeta en JavaScript la solucion la plantearia
directamente en el codigo .Net de esta foma:

En el evento CheckedChanged del CheckBox haces un ciclo para recorrer todos
los items del DataGrid, en cada uno buscas el CheckBox y le modificas la
propiedad Checked al valor deseado:

private void CheckedChanged(Object sender, EventArgs e)
{
foreach(DataGridItem dgi in DataGrid1.Items)
{
CheckBox chk = (CheckBox)dgi.FindControl("CheckBoxGrid");
chk.Checked = CheckBoxExterno.Checked;
}
}

En este caso CheckBoxGrid es el interno de cada fila y CheckBoxExterno es el
que esta por fuera del grid.

Nota: Este codigo no se ha probado.

Sergio Florez M.
Miembro activo www.AlianzaDev.net
El que persevera insiste
Medellín, Colombia
DCE 4

"JC" escribió en el mensaje
news:c13301c47a36$f0db40e0$
puse una columna de checkbox en un datagrid, pero ahora
quiero poner un header con checkbox para que cuando se
seleccione, se seleccionen todos los checkbox

un ejemplo de lo que necesito ahcer lo encontre en este
link:
http://www.developerfusion.com/show/4632/3/

pero siempre he tenido problemas con javascript y los
controles asp.net

me pueden ayduar a que funcione esta rutina? o alguuna
otra que ya hayan hecho?

gracias

function select_deselectAll (chkVal, idVal)
{
var frm = document.forms[0];
// Loop through all elements
for (i=0; i<frm.length; i++)
{
// Look for our Header Template's Checkbox
if (idVal.indexOf ('CheckAll') != -1)
{
// Check if main checkbox is checked, then
select or deselect datagrid checkboxes
if(chkVal == true)
{
frm.elements[i].checked = true;
}
else
{
frm.elements[i].checked = false;
}
// Work here with the Item Template's multiple
checkboxes
}
else if (idVal.indexOf ('DeleteThis') != -1)
{
// Check if any of the checkboxes are not
checked, and then uncheck top select all checkbox
if(frm.elements[i].checked == false)
{
frm.elements[1].checked = false; //Uncheck
main select all checkbox
}
}
}

}


'Datagrid

<asp:datagrid id="DataGrid1" runat="server" Font-Size="X-
Small" AllowSorting="True" Font-Names="Arial"
ShowFooter="True">

<HeaderStyle Font-Size="X-Small"
Font-Names="Arial" HorizontalAlign="Center"
ForeColor="White" BackColor="#C70B0B"></HeaderStyle>

<Columns>

<asp:TemplateColumn>

<HeaderTemplate>


<asp:CheckBox ID="CheckAll" OnClick="javascript:
return select_deselectAll (this.checked, this.id);"
runat="server" />

<font
face="Webdings" color="white" size="4">a</font>

</HeaderTemplate>

<ItemTemplate>


<asp:CheckBox ID="DeleteThis" OnClick="javascript:
return select_deselectAll (this.checked, this.id);"
runat="server" />

</ItemTemplate>

</asp:TemplateColumn>

</Columns>

<FooterStyle Font-Size="X-Small"
Font-Names="Arial" HorizontalAlign="Left"
ForeColor="White" BackColor="#C70B0B"></FooterStyle>

</asp:datagrid>

Preguntas similares