
26/09/2006, 09:16
|
| | Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 20 años, 5 meses Puntos: 0 | |
ok
lo que yo hago es lo siguiente:
Declaro mi grid el cual contiene entre otros un check
<asp:datalist id="MySerie" runat="server" Width="100%">
<AlternatingItemStyle BackColor="#E7EEF5"></AlternatingItemStyle>
<ItemTemplate>
<TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
<TR>
<TD vAlign="top" align="center" width="1%"> </TD>
<TD vAlign="top" align="left" width="97%">
<asp:Label id="titulo" runat="server">Label</asp:Label></TD>
<TD vAlign="top" align="right" width="2%">
<asp:CheckBox id="check" runat="server"></asp:CheckBox></TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:datalist>
al iniciar se genera un query con la informacion, el else reace los eventos que fueron creados dinamicamente
private void Page_Load(object sender, System.EventArgs e)
{
if (this.Page.IsPostBack) {
MySerie.DataSource = CSql.RecuperaFilas(StrSql);
MySerie.DataBind();
}
else {
System.Web.UI.WebControls.CheckBox chk = new System.Web.UI.WebControls.CheckBox();
for (int i=0; i<MySerie.Items.Count; i++ ) {
chk = (System.Web.UI.WebControls.CheckBox) (MySerie.Items[i].FindControl("check"));
chk.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged) ;
}
}
}
utilizamos el metodo ItemDataBound del grid para cargar y controlar la informacion que se pondra en el.
private void MyDataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
System.Data.Common.DbDataRecord registro = (System.Data.Common.DbDataRecord) (e.Item.DataItem);
System.Web.UI.WebControls.CheckBox chk = (System.Web.UI.WebControls.CheckBox) (e.Item.FindControl
("check"));
System.Web.UI.WebControls.Label titulo = (System.Web.UI.WebControls.Label) (e.Item.FindControl("titulo"));
titulo.Text = registro.GetValue(1).ToString().Trim();
titulo.CssClass = "txt_negro";
chk.Checked = (registro.GetValue(2).ToString()=="1");
chk.ToolTip = registro.GetValue(0).ToString();
chk.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged) ;
chk.AutoPostBack = true;
}
Por supuesto hay que definir el metodo del evento
private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
{
bool bandera = false;
System.Web.UI.WebControls.CheckBox chk = (System.Web.UI.WebControls.CheckBox) (sender);
if (chk.Checked) {
bandera = Grabar(ViewState["ficha"].ToString(), chk.ToolTip);
else {
bandera = false;
}
Espero te pueda servir ...
Compartir el conocimiento es un acto de agradecimiento a todos aquellos que lo generaron. |