как заполнить modalpopupextender при нажатии кнопки gridview в asp.net - PullRequest
3 голосов
/ 16 декабря 2011

У меня есть одна проблема, кто-то может мне помочь.У меня есть сетка и кнопка для редактирования полей в сетке внутри модалпопупексендера.Чего я хочу добиться, так это когда кто-то нажмет кнопку редактирования, всплывающее окно, чтобы получить данные из строки, которую нужно отредактировать.Как и сейчас, когда кто-то нажимает кнопку редактирования, появляется всплывающее окно, но там есть пустые текстовые поля / выпадающие списки.Вот что у меня есть в данный момент:

<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>

Я пробовал другим способом, когда кнопка нажата, но когда я нажимаю кнопку редактирования, всплывающее окно не появляется на странице:

  <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>

А вот и код бэкенда для вышеприведенной версии, но он не показывает всплывающее окно в конце:

 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();
 }

Я надеюсь, что кто-то может помочь мне с этим.Большое спасибо, Laziale

Ответы [ 3 ]

1 голос
/ 16 декабря 2011

Поскольку ссылка Паулса больше не работает, вот ответ на аналогичный вопрос о SO

PopUpExtender на ImageButton внутри проблемы GridView

Ссылки в ответнаходятся в том же источнике, что и Паулс, и когда я проверил, они тоже мертвы.Но в этом ответе содержится краткое описание кода.Это должно помочь вам.

0 голосов
/ 16 декабря 2011

Что я делал в прошлом, так это добавлял «Правка» UserControl для каждой строки, установленной на display:none, и связывал все свойства, чтобы, когда он показывается модулем modalpopupextener, все было хорошо. Затем вы обрабатываете обратную передачу в UserControl, которая будет иметь все необходимое вам состояние:

<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>
0 голосов
/ 16 декабря 2011

Здесь , где я узнал, как использовать ModalPopupExtender. Возможно, стоит прочитать этот пример и посмотреть, соответствует ли он вашему сценарию.

Я бы подумал, глядя на код, что установка связанной кнопки modalpopup для элемента управления строк gridview может вызвать проблему.

...