2013-04-10 2 views
1

첫 번째 열에는 gridview이고 checkbox입니다. 나는 autopostback="true"이라는 checkbox 속성을 설정했습니다. gridviewupdatepanel 안에 있습니다. checkboxchecked 일 때 panel을 표시하려는 경우, 어떤 패널이 업데이트 패널 외부에 있는지 확인하십시오. 코드를 통과하는 체크 포인트로 코드를 확인하지만 작동하지 않습니다. 어느 누구라도 나를 도울 수 있습니까? ..updatebox 내의 gridview 내의 체크 박스

미리 감사드립니다.

내 코드는 참조 용으로 여기에 ...

HTML 코드 :

<asp:Panel ID="ploperation" runat="server" CssClass="plop" Visible="False"> 
    <asp:LinkButton ID="lbtnasspam" runat="server" CssClass="panelbtn" Font-Names="Calibri" 
        Font-Size="14px" Font-Underline="False" OnClick="lbtnasspam_Click">Report As Spam</asp:LinkButton> 
</asp:Panel> 

<asp:UpdatePanel ID="up" runat="server"> 
    <ContentTemplate> 
     <asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False"> 

       <Columns> 
        <asp:TemplateField> 
         <ItemTemplate> 
          <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" OnCheckedChanged="chkchild_CheckedChanged"/> 
         </ItemTemplate> 
         <ItemStyle Width="15px" /> 
        </asp:TemplateField> 
       </Columns>   
     </asp:GridView> 
    </ContentTemplate>       
</asp:UpdatePanel> 

C# 코드 :

protected void chkchild_CheckedChanged(object sender, EventArgs e) 
{ 
    ploperation.Visible = true; 
} 
+0

업데이트 패널 do 부분 페이지 로딩 .... so if wana show ur panel to ur update panel. –

+0

@AmitSingh 감사합니다. 업데이트 패널에서 작동합니다 ... – ragu

+0

@AmitSingh 업데이트 패널 외부에서 만들 수 있습니까? – ragu

답변

0

업데이트 패널 않는 부분 페이지 로딩 .... check link

그래서 내 패널을 표시하고 싶은 경우 업데이트 패널에서도 확인하십시오.

1

initializeRequest을 사용할 수 있습니다.이 이벤트는 비동기 포스트 백이 발생할 때 발생합니다 (GridView의 확인란을 선택하면 업데이트 패널에 있기 때문에 비동기 포스트 백이 시작됩니다).

그냥 대신 <asp:Panel의 사업부에 ploperation을 변경하고 보여주기 위해 자바 스크립트를 사용할 수/숨길 :

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_initializeRequest(initializeRequest); 

    function initializeRequest(sender, args) { 
     document.getElementById('ploperation').style.display = 'block'; 
    } 

</script> 
<asp:UpdatePanel ID="up" runat="server"> 
    <ContentTemplate> 
     <asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" /> 
        </ItemTemplate> 
        <ItemStyle Width="15px" /> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<div id="ploperation" style="display:none;" runat="server"> 
    <asp:LinkButton ID="lbtnasspam" runat="server" CssClass="panelbtn" Font-Names="Calibri" 
     Font-Size="14px" Font-Underline="False" OnClick="lbtnasspam_Click">Report As Spam</asp:LinkButton> 
</div> 
</form> 

은 또한 당신은 UpdatePanel 내부 <asp:Panel을 배치, 당신은 그것을 한 적이 방식에 충실 할 수 있습니다 - > ContentTemplate

0

GridView가 아닌 ​​변경하려는 컨트롤에 UpdatePanel을 넣습니다. 트리거 섹션의 GridView를 참조하는 것을 잊지 마십시오. 예를 들어 레이블 텍스트를 변경하려면 다음 코드를 사용하십시오.

<asp:UpdatePanel ID="up" runat="server"> 
<ContentTemplate> 
    <asp:Label ID="Label1" runat="server" Text="" /> 
</ContentTemplate> 
<Triggers> 
     <asp:AsyncPostBackTrigger ControlID="gvmail" /> 
</Triggers> 
</asp:UpdatePanel> 

<asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" OnCheckedChanged="chkchild_CheckedChanged"/> 
      </ItemTemplate> 
      <ItemStyle Width="15px" /> 
     </asp:TemplateField> 
    </Columns>   
</asp:GridView>