2009-10-15 7 views
3

이유가 무엇이든간에 - 업데이트 패널이 업데이트되지 않습니다. 이제이 모든 것이 gridview 내부의 템플릿 필드에있는 항목 템플릿 안에 있습니다. 주요 중첩. 만약 당신이 명시 적으로 정의 된 트리거가도 그래도, 난 당신이 bttnEdit 클릭하지 될 당신의 UpdatePanel 새로 고침 원인에 문제가있는 것 같은데요,UpdatePanel이 업데이트되지 않음

<ItemTemplate> 
    <asp:ImageButton ID="bttnEdit" runat="server" injid='<%# Eval("Id") %>' causeid='<%# Eval("Cause_Type") %>' natureid='<%# Eval("Nature_Type") %>' CausesValidation="False" ImageUrl="~/images/bttnEdit.gif" Text="Edit" OnClientClick ="loadmodal(this.injid,this.causeid,this.natureid);" /> 
    &nbsp;<asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" 
    CommandName="Delete" ImageUrl="~/images/bttnDelete.gif" Text="Delete" /> 
    <asp:Panel ID = "Pnlmodal" runat ="server" style="background-color:White; padding:1em 6px;"> 
     <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional" > 
     <Triggers> 
     <asp:AsyncPostBackTrigger ControlID ="bttnEdit" 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><br /></tr> 
        <tr> 
         <td align="right" ><strong>What event caused the injury?</strong></td> 
         <td align="left"> 
          <asp:DropDownList ID="ddlcauseofinj" onchange="showifother('1');" runat="server" 
          DataSourceID="SqlDataSource2" DataTextField="Description" 
          DataValueField="ID" AppendDataBoundItems="True"> 
           <asp:ListItem Selected="True" style="color:gray" Value="0">Causes of Injury</asp:ListItem> 
          </asp:DropDownList> 
         </td> 
        </tr> 
        <tr id="trother1" style="display:none"> 
         <td align ="right"><strong>If Other, Please Describe:</strong></td> 
         <td align="left"> 
         <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox> 
         </td> 
        </tr> 
        <tr> 
         <td align="right"><strong>What is the extent of the Injury?</strong></td> 
         <td align="left"> 
          <asp:DropDownList ID="ddlextentofinj" runat="server" 
          onchange="showifother('2');" AppendDataBoundItems ="true" DataSourceID="SqlDataSource3" 
          DataTextField="Description" DataValueField="ID"> 
          <asp:ListItem Selected="True" style="color:gray" Value="0">Extent of the Injury</asp:ListItem> 
          </asp:DropDownList> 
         </td> 
        </tr> 
        <tr id="trother2" style="display:none"> 
         <td align="right"><strong>If Other, Please Describe:</strong></td> 
         <td align="left"> 
          <asp:TextBox ID="TextBox4" runat="server" TextMode="MultiLine" ></asp:TextBox> 
         </td> 
        </tr> 
        <tr> 
         <td align="right"><strong>Type of Medical Treatment:</strong></td> 
         <td align ="left"> 
          <asp:DropDownList ID="DropDownList3" AppendDataBoundItems ="true" runat="server" 
          DataSourceID="SqlDataSource4" DataTextField="Description" DataValueField="ID"> 
          <asp:ListItem Selected="True" style="color:gray" Value="0">Medical Treatments</asp:ListItem> 
          </asp:DropDownList> 
         </td> 
        </tr> 
        <tr> 
         <td align="right"><strong>Treatment Provider:</strong></td> 
         <td align="left"> 
          <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Injury_Desc")%>'></asp:TextBox> 
         </td> 
        </tr> 
        <tr> 
         <td colspan ="2" align="center"><asp:ImageButton ID="CancelButton" runat="server" ImageUrl="~/images/bttnCancel.gif" /></td> 
        </tr> 
        </table> 
       </EditItemTemplate> 
      </asp:FormView> 
     </ContentTemplate> 
     </asp:UpdatePanel> 
    </asp:Panel> 
    <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
    TargetControlID="bttnEdit" PopupControlID="Pnlmodal" 
    BackgroundCssClass="modalBackground" Drag="True" /> 
</ItemTemplate> 
+1

updatepanel이 작동하지 않습니까? –

+0

테스트로 ModalPopupExtender를 제거해 보았습니다 ... 그냥 생각한 것 –

답변

0

감사를 시도 패널에있는 gridview 포장! 전체 패널을 gridview 및 다른 모든 중첩 컨트롤 외부로 옮겼습니다. 그것은 효과가 있었다. 그것은 컨트롤 ID를 찾는 데 문제가있었습니다.

+1

gridviews 내부에서 업데이트 패널을 완료했는데 이것이 올바른 대답이라는 데 동의 할 수 없습니다. 문 손잡이 대신 도끼를 사용하여 문을 열었다 고 생각합니다. 둘 다 같은 일을 성취하지만, 조금 더 해키가 있습니다 :) – JustLoren

0

을 제발 도와주세요.

그렇다면 실제로 bttnEdit에 대해 정의 된 서버 측 클릭 이벤트가 없다는 것이 문제의 원인 일 수 있습니다. 대신 javascript를 사용하여 클릭을 가로 채고 bttnEdit을 클릭 한 서버로 전달하지 않고 양식을 제출하는 데 사용합니다.

TL; DR은 : 또한 서버 측 클릭을하거나, 항상 업데이트하기 위해 updatepanel을 변경하려면 bttnEdit 변경

+0

항상 업데이트하도록 변경했지만 업데이트하지 않는 것 같습니다. 폼뷰의 데이터 소스가 의존하는 변수를 설정 했으므로 onclient 클릭이 발생했습니다. 그래서 업데이 트하려면 updatepanel이 필요합니다. 나는 javascript에서 dopostback을 시도했지만 전체 페이지를 다시로드합니다. – Eric

+0

onclientclick과 onclick을 가질 수 있습니다 - 이유 때문에 공존합니다. 나는 당신이 당신의 쟁점을 해결 했어야했기 때문에 두 가지를 모두 사용할 것을 제안했습니다. – JustLoren

1

난 그냥 전체 사이트 주위 업데이트 패널을 랩 (두 번째는 못생긴 해킹). 이 솔기는 대개 트릭을 수행합니다. 그리드 뷰에 업데이트 패널을 가지고있는 것은 아마 패널의 ID를 엉망으로 만들고 업데이트하지 않게됩니다.

  1. 전체 사이트

답의 모든
+3

성능에 신경 쓰지 않으면 전체 페이지를 업데이트 패널에 넣는 것이 좋습니다. 개인적으로, 나는 UpdateMode = 조건부의 모든 업데이트 패널을 사용하고 적절한 섹션 만 줄 바꿈합니다. – JustLoren

관련 문제