c# - Evento OnCheckedChanged que no se activa
asp.net ajax (2)
Intente activar AutoPostBack para el control de casilla de verificación.
<asp:CheckBox ID="CheckBoxProcess" runat="server" Enabled="true" OnCheckedChanged = "CheckBoxProcess_OnCheckedChanged" AutoPostBack="true" />
Esta quizás sea la razón por la que no se llama a su método.
Tengo un GridView con una columna de casillas de verificación (el resto de GridView se está llenando desde una base de datos). Estoy usando AJAX para realizar diferentes funciones, y me pregunto si no estoy llamando al evento OnCheckedChanged en el lugar correcto. ¿Debería estar envuelto en algún tipo de UpdatePanel? Todavía soy nuevo en la forma en que todo esto funciona ... básicamente, lo que pretendo es cambiar el valor de un bit en mi base de datos cuando se marca una casilla de verificación. Sé la lógica de cómo hacer eso, simplemente no sé si me estoy dirigiendo a mi evento OnCheckedChanged de la manera correcta.
.CS
protected void CheckBoxProcess_OnCheckedChanged(Object sender, EventArgs args)
{
CheckBox checkbox = (CheckBox)sender;
GridViewRow row = (GridViewRow)checkbox.NamingContainer;
OrderBrowser.Text += "CHANGED";
}
}
.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<asp:DropDownList runat="server" ID="orderByList" AutoPostBack="true">
<asp:ListItem Value="fName" Selected="True">First Name</asp:ListItem>
<asp:ListItem Value="lName">Last Name</asp:ListItem>
<asp:ListItem Value="state">State</asp:ListItem>
<asp:ListItem Value="zip">Zip Code</asp:ListItem>
<asp:ListItem Value="cwaSource">Source</asp:ListItem>
<asp:ListItem Value="cwaJoined">Date Joined</asp:ListItem>
</asp:DropDownList>
</div>
<div>
<asp:Label runat="server" ID="searchLabel" Text="Search For: " />
<asp:TextBox ID="searchTextBox" runat="server" Columns="30" />
<asp:Button ID="searchButton" runat="server" Text="Search" />
</div>
<div>
<asp:UpdatePanel ID = "up" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID = "orderByList"
EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlId="searchButton" EventName="Click" />
</Triggers>
<ContentTemplate>
<div align="center">
<asp:GridView ID="DefaultGrid" runat = "server" DataKeyNames = "fName"
onselectedindexchanged = "DefaultGrid_SelectedIndexChanged"
autogenerateselectbutton = "true"
selectedindex="0">
<SelectedRowStyle BackColor="Azure"
forecolor="Black"
font-bold="true" />
<Columns>
<asp:TemplateField HeaderText="Processed">
<ItemTemplate>
<asp:CheckBox ID="CheckBoxProcess" runat="server" Enabled="true" OnCheckedChanged = "CheckBoxProcess_OnCheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:TextBox ID="OrderBrowser" columns="100" Rows="14" runat="server" Wrap="false" TextMode="MultiLine" ReadOnly = "true">
</asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
Por favor, intente verificar el valor con el DB:
Checked=''<%# Convert.ToBoolean(Eval("Processed"))
%>''