如何在ASP.NET中当GridView按钮被点击时填充ModalPopupExtender

3

我有一个问题,希望有人能帮助我。我有一个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个回答

1

由于Paul的链接已经失效,这里提供一个关于SO类似问题的答案。

GridView中ImageButton上的PopUpExtender问题

答案中的链接与Paul的答案指向同一来源,但在我检查时也已经失效。不过那个答案中有代码摘要,应该会对你有所帮助。


0

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

从代码上看,我认为将模态弹出窗口的关联按钮设置为一个网格视图行控件可能会导致问题。


你的链接实际上没有链接到任何有用的内容。请检查你的链接或者确认内容是否已经不存在了! - Jon P

0
我以前所做的是为每一行添加了一个“Edit”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>

我该如何获取用户控件中的属性值?谢谢。 - Laziale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接