【问题标题】:Why my asp.net MODAL doesn't display data?为什么我的 asp.net MODAL 不显示数据?
【发布时间】:2016-03-07 21:19:25
【问题描述】:

我试图在 ajax MODAL 中显示一个 gridview,但它没有显示 gridview。它显示了我放入其中的所有其他元素,但没有显示网格。 我试图在模态外显示 gridview 并且它可以工作但不能在模态内显示。 为什么 ?

代码:

<asp:Panel ID="pnlLastHearingDates" CssClass="modalPopup" runat="server" HorizontalAlign="Center" Visible="true">
 <asp:GridView runat="server" ID="grdViewLastHearingDates" AllowPaging="true" PageSize="5" OnPageIndexChanging="grdViewLastHearingDates_PageIndexChanging"
               OnRowCommand="grdViewLastHearingDates_RowCommand" PagerStyle-BackColor="#99CC99" HeaderStyle-BackColor="#99CC99" DataKeyNames="pk_Cases_CaseID" PagerStyle-Font-Size="12.5px" PagerStyle-ForeColor="Black" PagerStyle-HorizontalAlign="Center" AutoGenerateColumns="false" OnRowEditing="grdViewLastHearingDates_RowEditing"
               CssClass="table table-condensed table-bordered table-striped table-responsive">
   <Columns>
        <asp:BoundField DataField="pk_Cases_CaseID" HeaderText="Case ID" />
        <asp:BoundField DataField="CaseNo" HeaderText="Case No" />
        <asp:BoundField DataField="NextHearingDate" HeaderText="Next Hearing Date" />
        <asp:BoundField DataField="DaysRemaining" HeaderText="Days Remaining" />
   </Columns>
 </asp:GridView>
</asp:Panel>

<asp:Button ID="btnShowLasthearingDates" runat="server" OnClick="btnShowLasthearingDates_Click" CssClass="btn btn-primary" />
<asp:ModalPopupExtender ID="mdlLastHearingDates" runat="server" TargetControlID="btnShowLasthearingDates" PopupControlID="pnlLastHearingDates">

.cs代码:

protected void btnShowLasthearingDates_Click(object sender, EventArgs e)
    {
        ShowLastHearingDates();
        pnlLastHearingDates.Visible = true;
    }

【问题讨论】:

  • 检查Inspect Element的控制台是否有错误。
  • 好的先生,让我检查一下
  • 检查是否从 Inspect Element 为 Panel 内的 GridView 生成了 HTML 内容。
  • 不,先生,只是一个空的 div
  • 哦,是的,问题解决了,btnShowLasthearingDates_Click 事件没有被调用,我检查调试

标签: c# asp.net ajax gridview modalpopupextender


【解决方案1】:

这里的问题可能与ModalPopupExtenderTargetControlId 属性有关。

尝试从那里删除按钮 ID,而是在您的 aspx 页面中获取一个隐藏字段控件并为其指定一个 ID。现在将该 ID 放入 TargetControlId 属性并尝试单击您的按钮。

您的代码将如下所示:

<asp:HiddenField ID="HdnFld1" runat="server" />
                                        <asp:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="MPE" runat="server"
                                            CancelControlID="btnCancel"
                                            TargetControlID="HdnFld1" PopupControlID="Panel1"
                                            PopupDragHandleControlID="PopupHeader" Drag="true"
                                            BackgroundCssClass="ModalPopupBG">
                                        </asp:ModalPopupExtender>

此外,您可以为您的按钮保留CausesValidation="false",以防它因验证而停止回发,但同样,您可以处理它,因为这将回发而无需在客户端进行任何类型的数据检查。

希望这会有所帮助。

【讨论】:

  • 哦,太好了,先生,但我想知道它是如何工作的?标签既没有被点击也没有被执行,但它仍然有效
  • 基本上,您需要为其添加一个虚拟控件并将按钮替换为控件的 ID。这就是让它发挥作用所需要的。所以现在,您的弹出窗口有一个什么都不做的目标,因此一切都按预期工作。
猜你喜欢
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 2010-10-14
  • 2017-04-17
  • 2016-12-08
  • 2018-11-20
  • 1970-01-01
相关资源
最近更新 更多