3 Stimmen

Wie füllt man den modalpopupextender auf, wenn die Schaltfläche gridview in asp.net angeklickt wird?

Ich habe ein Problem, vielleicht kann mir jemand helfen. Ich habe eine Gridview und eine Schaltfläche zum Bearbeiten der Felder in der Gridview aus einem modalpopupextender. Was ich erreichen möchte, ist, wenn jemand auf die Schaltfläche "Bearbeiten" klicken, das Popup, um die Daten aus der Zeile, die bearbeitet werden muss haben. Wie es jetzt ist, wenn jemand auf die Schaltfläche "Bearbeiten" klickt, kommt das Popup, aber mit leeren Textboxen/Dropdowns dort. Hier ist, was ich in diesem Moment haben:

<ItemTemplate>
   <asp:Button ID="btnEdit" CausesValidation="false" 
       runat="server" Text="Edit" OnClick="Activatee" />
  <ajaxToolkit:ConfirmButtonExtender ID="btnDeactivatePopup" runat="server" 
       TargetControlID="btnEdit" DisplayModalPopupID="ModalPopupDeactivate" />
  <ajaxToolkit:ModalPopupExtender 
       ID="ModalPopupDeactivate" runat="server" TargetControlID="btnEdit" 
       PopupControlID="pnlActivate" OkControlID="btnDeactivateOK" 
       CancelControlID="btnDeactivateCancel" BackgroundCssClass="modalBackground" 
       DynamicServicePath="" Enabled="true" />
</ItemTemplate>

Ich habe es mit einer anderen Methode versucht, wenn die Schaltfläche angeklickt wird, aber wenn ich auf die Schaltfläche "Bearbeiten" klicke, erscheint das Popup nicht auf der Seite:

  <ItemTemplate>
    <asp:Button ID="btnEdit" CausesValidation="false" 
          runat="server" Text="Edit" OnClick="getData" />
    <!-- 
    <ajaxToolkit:ConfirmButtonExtender ID="btnDeactivatePopup" 
          runat="server" TargetControlID="btnEdit" 
          DisplayModalPopupID="ModalPopupDeactivate" /> 
    -->
    <ajaxToolkit:ModalPopupExtender ID="ModalPopupDeactivate" 
          runat="server" TargetControlID="btnEdit" PopupControlID="pnlActivate"
          OkControlID="btnDeactivateOK" CancelControlID="btnDeactivateCancel" 
          BackgroundCssClass="modalBackground" DynamicServicePath="" Enabled="true" />
 </ItemTemplate>

Und hier ist auch der Backend-Code für die obige Version, aber er zeigt das Popup am Ende nicht an:

 protected void getData(object sender, EventArgs e)
 {
      string coef = "";
      Button btn = (Button)sender;
      GridViewRow gvr = (GridViewRow)btn.NamingContainer;
      int rowindex = gvr.RowIndex;
      GridViewRow roww = gvGDG.Rows[rowindex];
      coef = Convert.ToString(roww.Cells[7].Text);
      txtCoefficient.Text = coef;
      ModalPopupExtender modalPopupExtender1 = 
         (ModalPopupExtender)gvGDG.Rows[rowindex].FindControl("ModalPopupDeactivate");
      modalPopupExtender1.Show();
 }

Ich hoffe, jemand kann mir dabei helfen. Vielen Dank, Laziale

1voto

Jon P Punkte 17989

Da Pauls Link nicht mehr funktioniert, hier eine Antwort auf eine ähnliche Frage auf SO

PopUpExtender auf ImageButton innerhalb GridView Problem

Die Links in der Antwort verweisen auf dieselbe Quelle wie Pauls Antwort, und als ich sie überprüfte, waren sie ebenfalls tot. Aber es gibt eine Zusammenfassung des Codes in dieser Antwort. Das sollte Ihnen helfen.

0voto

PMC Punkte 4648

Hier habe ich gelernt, wie man ModalPopupExtender verwendet. Vielleicht lohnt es sich, dieses Beispiel zu lesen und zu sehen, ob es zu Ihrem Szenario passt.

Ich würde denken, von Blick auf den Code, dass die Einstellung der modalpopup's zugeordnete Schaltfläche zu einem Gridview Zeile Kontrolle würde ein Problem verursachen.

0voto

rick schott Punkte 20895

In der Vergangenheit habe ich eine "Bearbeiten"-Funktion hinzugefügt. UserControl pro Zeile, die auf display:none und binden alle Eigenschaften, so dass, wenn es von der modalpopupextener angezeigt wird, es ist alles gut. Sie behandeln dann das Postback in der UserControl die alle Informationen enthält, die Sie benötigen:

<ItemTemplate>
    <asp:Button ID="btnEdit" CausesValidation="false" runat="server" Text="Edit" OnClick="Activatee" />
    <ajaxToolkit:ConfirmButtonExtender ID="btnDeactivatePopup" runat="server" TargetControlID="btnEdit" DisplayModalPopupID="ModalPopupDeactivate" />
    <ajaxToolkit:ModalPopupExtender OnPreRender="getData" ID="ModalPopupDeactivate" runat="server" TargetControlID="btnEdit" 
    PopupControlID="pnlActivate" OkControlID="btnDeactivateOK" CancelControlID="btnDeactivateCancel" 
    BackgroundCssClass="modalBackground" DynamicServicePath="" Enabled="true" />
   <cc1:YourEditControl id="pnlActivate" runat="server" Propertry1='<%# Eval("data1")%>' Proptery2='<%# Eval("data2")%>' />
    </ItemTemplate>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X