2017-05-24 5 views
0

Ich habe einige Code innerhalb eines Asp: UpdatePanel, dass nach dem Klicken auf eine Schaltfläche. Es wird ein Label ausblenden und durch ein editierbares Textfeld ersetzen. Diese Funktionalität funktioniert innerhalb des UpdatePanels einwandfrei. Wenn Sie jedoch auf diese Schaltfläche klicken, um den Aufruf auszuführen (der sich auch im UpdatePanel befindet), werden asp: LinkButtons, die nach und außerhalb des UpdatePanels angezeigt werden, nicht mehr ausgeführt. Diese Links funktionieren vor der Interaktion mit Steuerelementen im UpdatePanel, funktionieren jedoch nicht mehr. Es ist erwähnenswert, dass diese Linkbuttons dynamisch erstellt und an ein bestehendes div angehängt werden, das folgt und nicht innerhalb des UpdatePanel liegt, das dieses Problem verursacht. Ich habe versucht, die Methode aufzurufen, die diese Steuerelemente dynamisch erstellt und anfügt, wenn das Update-Panel einen Rückruf an den Server durchführt, jedoch ohne Erfolg.Link-Buttons nicht nach UpdatePanel die teilweise Render Callback

 <div> 
      <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
      <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
       <ContentTemplate> 
        <label class="reportModeLabel">Primary Mode: </label> 
        <div id="divShowMode" runat="server" class="inlineItem"> 
         <asp:Label ID="lblPrimaryMode" runat="server"></asp:Label> 
         <asp:LinkButton ID="lnkPrimaryMode" runat="server" CssClass="clickOnce" OnClick="lnkPrimaryMode_Click"> 
          <asp:Image ID="imgChangePrimaryMode" runat="server" CssClass="imgReportUpdateMenuItem" ImageUrl="~/Images/Edit.png" /> 
         </asp:LinkButton> 
        </div> 
        <div id="divUpdateMode" runat="server" class="inlineItem" > 
         <asp:DropdownList ID="ddlModeOfTransmission" runat="server" Width="40%" CssClass="metaItemDropdown">          
          <asp:ListItem Text="Food" Value="1"></asp:ListItem> 
          <asp:ListItem Text="Water" Value="2"></asp:ListItem> 
          <asp:ListItem Text="Animal" Value="3"></asp:ListItem> 
          <asp:ListItem Text="Person to Person" Value="4"></asp:ListItem> 
          <asp:ListItem Text="Environmental" Value="5"></asp:ListItem> 
          <asp:ListItem Text="Other/Unknown" Value="6"></asp:ListItem> 
         </asp:DropdownList> 
         <asp:LinkButton ID="lnkPrimaryModeSave" runat="server" CssClass="clickOnce" OnClick="lnkPrimaryModeSave_Click"> 
          <asp:Image ID="imgPrimaryModeSave" runat="server" ImageUrl="~/Images/Check-Selected.png" /> 
         </asp:LinkButton> 
        </div> 
       </ContentTemplate> 
      </asp:UpdatePanel>   
     </div> 

<div class="divWizardMenu"> 
    //The link button controls that no longer work after using the 
    //UpdatePanel are dynamically created on server and added here 
    <ul id="ulMainMenu" runat="server"/> 
</div> 


    //UpdatePanel ajax calls 
    protected void lnkPrimaryMode_Click(object sender, EventArgs e) 
    { 
     divShowMode.Visible = false; 
     divUpdateMode.Visible = true; 
     ddlModeOfTransmission.SelectedValue = Record.PrimaryModeOfTransmissionID.ToString(); 
    } 

    protected void lnkPrimaryModeSave_Click(object sender, EventArgs e) 
    { 
     divUpdateMode.Visible = false; 
     divShowMode.Visible = true; 
    } 

Antwort

0

Weisen Sie Ihren dynamisch erstellten LinkButtons beim Erstellen eine ID zu?

Ich denke, dass sie die ID benötigen, damit Ereignisse auf Postback neu verkabelt werden können.

+0

Ja, den LinkButtons werden IDs zugewiesen, wenn sie dynamisch auf dem Server erstellt werden. Ich habe sogar versucht, das Erstellen der Hierarchie am Ende jedes UpdatePanel-Aufrufs erneut aufzurufen. –

+0

Das Problem besteht darin, dass die Ereignisse nach jedem Postback neu verdrahtet werden müssen. Da sich die dynamisch erstellten Schaltflächen jedoch außerhalb des Aktualisierungsfensters befinden, werden sie beim partiellen Postback des Aktualisierungsfensters nicht beeinflusst. Sie könnten versuchen, das Ereignis WireUp in Page_Init einzufügen, aber am einfachsten wäre es, das divWizardMenu in das Update Panel zu verschieben –

Verwandte Themen