2009-10-20 4 views
1

나는 gridview의 템플릿 필드 안에 버튼이 있습니다. Formview의 데이터 소스는 내가 클릭 한 후에 설정하는 숨겨진 필드에 의존하기 때문에 Modal 팝업에서 updatepanel과 formview를 강제로 업데이트하는 동안 버튼에 모달 팝업을 열어 줘야합니다.업데이트 패널이 업데이트되지 않는 것 같습니다

이것은 내가 지금까지 가지고있는 것입니다.

protected void bttnEdit_Click2(object sender, ImageClickEventArgs e) 
{ 
    ImageButton bttnEdit = (ImageButton)sender; 

    HiddenField HiddenField1 = (HiddenField)FormView1.FindControl("HiddenField1"); 
    HiddenField1.Value = bttnEdit.CommandArgument; 

    UpdatePanel UpdatePanel3 = (UpdatePanel)FormView1.FindControl("UpdatePanel3"); 


    AjaxControlToolkit.ModalPopupExtender ModalPopupExtender1 = (AjaxControlToolkit.ModalPopupExtender)FormView1.FindControl("ModalPopupExtender1"); 
    ModalPopupExtender1.Show(); 
    FormView3.DataBind(); 
    UpdatePanel3.Update(); 

} 

팝업이 표시되지만 내부에는 아무것도 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

<asp:TemplateField ShowHeader="False"> 
    <EditItemTemplate> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:UpdatePanel ID="UpdatePanel21" runat="server"> 
      <ContentTemplate> 
       <asp:ImageButton ID="bttnEdit" CommandArgument = '<%# Eval("Id") %>' runat="server" OnClick ="bttnEdit_Click2" injid='<%# Eval("Id") %>' causeid='<%# Eval("C_Type") %>' natureid='<%# Eval("n_type") %>' CausesValidation="False" ImageUrl="~/images/bttnEdit.gif" Text="Edit" OnClientClick ="loadmodal(this.injid,this.causeid,this.natureid);" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     &nbsp;<asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" CommandName="Delete" ImageUrl="~/images/bttnDelete.gif" Text="Delete" /> 
    </ItemTemplate> 

<asp:Panel ID = "Pnlmodal" runat ="server" style="background-color:White; padding:1em 6px;"> 
    <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode ="Conditional" ChildrenAsTriggers ="true" > 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID ="Button1" EventName ="Click" /> 
     </Triggers> 
    <ContentTemplate> 
     <asp:FormView ID="FormView2" runat="server" DefaultMode ="Edit" DataSourceID ="SqlDataSource8"> 
      <EditItemTemplate> 
       <table> 
        <tr> 
         <td colspan="2" align="center" style="color:Blue;font-size:large">Edit Injury</td> 
        </tr> 
        <tr> 
         <td align="right" ><strong>What event caused the injury </strong></td>     
         <td align="left">                            <asp:UpdatePanel ID="UpdatePanel14" runat="server"> 
           <ContentTemplate> 
            ////stuff 
           </ContentTemplate> 
          </UpdatePanel> 

답변

0

은 모달에있는 당신의 FormView는 그러나 FormView2라는 이름의 코드는 FormView3을 Databinds된다. 틀림없이 FormView를 바인딩 할 수 있습니까?

+0

맞습니다. 나는 그것을 고쳤다. 그러나 나는 여전히 같은 문제를 겪고있다. – Eric

+0

컨트롤에 대해 의미있는 이름을 사용하는 것이 좋습니다. 이러한 유형의 상황을 피하는 것이 더 쉽습니다. UpdatePanels에 upl_, formviews에 fmv_와 같은 접두사를 추가 한 다음 변수 끝에 –

+0

을 추가합니다. FormView1 내에 UpdatePanel3이 있습니까? 표시된 코드에서 알 수 없습니다 –

관련 문제