【问题标题】:Modal popup in grid view not working网格视图中的模态弹出窗口不起作用
【发布时间】:2012-01-28 08:50:33
【问题描述】:

我有一个模态弹出扩展器、链接按钮(模板字段)、网格视图中的假按钮。 mpe 的目标控件 ID 是假按钮,弹出控件是具有另一个网格的面板,用于显示主请求的详细信息。我在链接按钮单击事件中调用 mpe show 方法,但它没有显示出来。请帮忙,因为我虽然研究过,但找不到解决方案。 请找到我的标记代码。

在此网格中选择操作

<asp:GridView ID="grdDULead" runat="server" AllowPaging="True" AllowSorting="True"
 Caption="AMT Team Approval Details" CellPadding="3" CssClass="Grid"
 Height="75px" Style="left: 122px;
 position: absolute; top: 342px" Width="792px" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="Transition Request Number" OnRowCommand="grdDULead_RowCommand">
 <FooterStyle BackColor="White" CssClass="GridFooter" />
 <Columns>
 <asp:TemplateField>
    <ItemTemplate>
    <asp:LinkButton ID="grDULeadlnkSelect" runat="server" ForeColor="Red" OnClick="grDULeadlnkSelect_Click" CausesValidation="False" CommandName="SelectRow">select</asp:LinkButton>&nbsp;

     <asp:Button ID="btnfake" runat="server" CausesValidation="False" ForeColor="Red" Text="Fake" Visible="False" />
                <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnfake" PopupControlID="pnlCDAMTClar" BackgroundCssClass="modalBackground">
                  </cc1:ModalPopupExtender>
       </ItemTemplate>
    </asp:TemplateField>

弹出控件标记





代码隐藏 链接按钮单击(模板文件) protected void grDULeadlnkSelect_Click(对象发送者,EventArgs e) {

        GridViewRow clickedRow = ((LinkButton)sender).NamingContainer as GridViewRow;
        lblReqno.Text=clickedRow.Cells[1].Text.ToString();
        ModalPopupExtender mpeTemp = ((ModalPopupExtender)(clickedRow.FindControl "ModalPopupExtender1")));
          mpeTemp.Show();
    }

【问题讨论】:

  • 调试你的代码,看看你在 mpeTemp 中得到了什么。首先确认它不为空。还有一件事为什么要为gridview的每一行使用modelpopextender?
  • techbrij.com/772/show-modal-popup-edit-aspdotnet-gridview 最好的方法。我已经实施并且工作正常。
  • if (e.Row.RowType == DataControlRowType.DataRow) { AjaxControlToolkit.ModalPopupExtender pce = e.Row.FindControl("PopupControlExtender1") as AjaxControlToolkit.ModalPopupExtender;
  • 仅将您的按钮放在模板字段中,将命令参数作为 id 和命令名称提供给按钮,例如:我的按钮:
  • and on row command protected void GridViewActivityGroup_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "AddActivity") { HyperLinkActivity.Visible=true;ModalPopupExtenderActivity.Show(); }}

标签: asp.net asp.net-ajax


【解决方案1】:

我建议不要继续使用上面的代码,因为为每一行创建的 ModelPop Extender 实例会降低性能。

您可以使用以下替代解决方案:

1.将 Facke 按钮保留在 gridview 中,就像你已经做的那样。

2.从 Gridview 中移除 ModelPopup Extender 并将其保留在 Gridview 之外。还添加一个假链接按钮,如下所示:

<asp:LinkButton ID="LnkFake" runat="server"></asp:LinkButton>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"     TargetControlID="LnkFake" PopupControlID="pnlCDAMTClar" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>

3.在服务器端,点击你的按钮显示ModelPop如下:

ModalPopupExtender1.Show()

希望对您有所帮助,如果您有任何疑问,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多