如何在asp.net中单击gridview按钮时填充modalpopupextender

时间:2011-12-15 20:39:31

标签: asp.net ajax gridview modalpopupextender

我有一个问题,有人可能会帮助我。 我有一个gridview和一个按钮,可以在modalpopupextender中编辑gridview中的字段。 我想要实现的是当有人点击编辑按钮时,弹出窗口中有来自需要编辑的行的数据。 就像现在一样,当有人点击编辑按钮时,弹出窗口会出现,但是那里有空白的文本框/下拉列表。 这就是我现在所拥有的:

<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 个答案:

答案 0 :(得分:1)

由于Pauls链接不再有效,这里是SO

上类似问题的答案

PopUpExtender on ImageButton inside GridView problem

答案中的链接与Pauls答案的来源相同,当我检查时它们也已死亡。但是在该答案中有一个代码摘要。这应该对你有帮助。

答案 1 :(得分:0)

Here是我学习如何使用ModalPopupExtender的地方。也许值得一读这个例子,看看它是否适合你的情况。

我想通过查看代码,将modalpopup的相关按钮设置为gridview行控件会导致问题。

答案 2 :(得分:0)

我过去所做的是将每行设置为“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>