2011-07-06 6 views
22

GridView에 확인란 열 (나머지 GridView는 데이터베이스에서 채워짐)이 있습니다. 나는 AJAX를 사용하여 다른 기능을 수행하고 있으며 적절한 장소에서 OnCheckedChanged 이벤트를 호출하지 않는지 궁금합니다. 그것은 일종의 UpdatePanel에 싸여 야하나요? 난 아직도이 모든 작업 방법에 대해 정말 새롭다 ... 기본적으로 내가 목표로하는 것은 체크 박스가 선택되었을 때 데이터베이스의 비트 값을 변경하는 것이다. 어떻게하는지에 대한 논리를 알고 있습니다. OnCheckedChanged 이벤트를 올바른 방법으로 처리하고 있는지 알 수 없습니다.OnCheckedChanged 이벤트가 실행되지 않음

.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> 
,

답변

54

확인란 컨트롤에 대해 AutoPostBack을 켜보십시오.

<asp:CheckBox ID="CheckBoxProcess" runat="server" Enabled="true" OnCheckedChanged = "CheckBoxProcess_OnCheckedChanged" AutoPostBack="true" /> 

아마도이 방법이 호출되지 않는 이유 일 수 있습니다.

+0

을 나는 검사가 다음 이초 등에 나타나고이 사라 할 때. 데이터베이스에서 아무 것도 처리하지 않기 때문에 그럴 수 있습니까? DB에 일정한 값이있을 때가 되길 원합니다. 체크가 나타나거나 사라집니다. 그러나, 내 테스트 코드 중 하나를 호출하는 메서드를 표시하지 않습니다 ... –

+0

가능성이 기능을 확인하기 위해 그냥 더미 데이터를 입력 할 가치가있다. – JConstantine

+0

나는 그것을 시험하고 있었고, 시험은 전혀 아무것도 보이지 않았다. ( –

-1

DB를 사용하여 값을 확인하여보십시오 :

Checked='<%# Convert.ToBoolean(Eval("Processed"))퍼센트> '

관련 문제