2017-12-13 12 views
0

aspxページを呼び出すと、Repeater内のリピーター付きの更新パネルを持つScheduler.aspxが呼び出されます。ItemTemplate IFrameを持つModalPopupExtenderがあります。別のaspxページの呼び出しコード別のシステムからいくつかのアップデートをチェックし、いくつかのアップデートが起きているユーザーに警告します、私はasp.net modal iframeで、子ページが実行されます。親ロード中にform_loadコードが実行されます。

を見つけることだ何Update.aspxページののForm_LoadでこのUpdate.aspx

Scheduler.aspxページにupdate.aspxの関数がロードされているので、多数のアラートが表示されますが、Modal内のUpdate.aspxに入るまではこれが必要ではありません。

機能は、(Page.IsPostback!)場合であるが、とにかくページが本物か、単に親ページの読み込みのためにロードされている場合、私が言うことができるあり

Scheuler.aspx例マークアップ

<asp:UpdatePanel ID="updMon" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
<ContentTemplate> 
    <asp:Repeater ID="rptMon" runat="server" OnItemCreated="rptMon_ItemCreated"> 
     <HeaderTemplate> 
     </HeaderTemplate> 
     <ItemTemplate> 
       <table style="width:100%;" class='<%# sTableClass(DataBinder.Eval(Container.DataItem, "DSC_ID").ToString()) %>'> 
        <tr> 
         <th> 
          <asp:LinkButton style="color:#717171" runat="server" id="LinkButton1" href="#"> 
          <%# DataBinder.Eval(Container.DataItem, "DSC_DELNAME") %></asp:LinkButton> 
         </th> 
        </tr> 
        <tr>...</tr> 
       </table> 
       <cc1:ModalPopupExtender ID="mpe1" runat="server" PopupControlID="pnlMon1" TargetControlID="LinkButton1" ></cc1:ModalPopupExtender> 
         <asp:Panel ID="pnlMon1" runat="server" CssClass="pnlBackGround" align="center" style = "display:none" > 
          <iframe id="iFrm1" class="iframeStyle" src='<%# "Update.aspx?id=" + Eval("DSC_ID").ToString() %>' runat="server"></iframe> 
           <div id="divClose" style="position:relative;top:-60px;width:200px;left:450px;"> 
            <asp:Button ID="btnCloseEdit1" runat="server" class="btn btn-primary" Text="Close" OnCommand="btnCloseEdit1_Command" CommandArgument='<%# Eval("DSC_ID").ToString() %>' /> 
           </div> 
         </asp:Panel> 
     </ItemTemplate> 
     <FooterTemplate></FooterTemplate> 
    </asp:Repeater> 
</ContentTemplate> 

SRCのリンクが私の上に設定されているので

Update.aspxでの更新チェックの呼び出しは、この

protected void Page_Load(object sender, EventArgs e) 
{ 
     if (!Page.IsPostBack) 
     { 
      if (Request.QueryString["id"] != null) 
     { 
      sID = Request.QueryString["id"].ToString(); 
      CheckUpdates(sID); 
     } 
} 
+0

を持っています親ページのクライアントサイドのイベントが発生するまで続行しますか?親ページの生成中に 'src:'について 'about:blank'に設定し、後でクライアント上で実際の値を変更してください。 – Igor

答えて

0

のようなものですそれが他のリソースと同じように読み込まれます。モーダルポップアップは、ページのマークアップに過ぎず、ブラウザには表示されませんが、リソースが出てロードできないというわけではありません。これを回避する方法の1つは、javascriptを使用してsrc属性を設定することと、モーダルが開かれているときのみにすることです。

0

乾杯の革ズボンなので、これは私がそれを行っている方法ですが...その後

<iframe id="iFrm1" class="iframeStyle" src="about:blank" runat="server"></iframe> 

ItemCreatedで、素敵な道が、私はリピーターに内のiframeになって考えることができる唯一の方法ではないかもしれません私が追加したリピーターに...

protected void rptMon_ItemCreated(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      LinkButton _link = (LinkButton)e.Item.FindControl("LinkButton1"); 
      HtmlControl _frame = (HtmlControl)e.Item.FindControl("iFrm1"); 
      _link.Attributes.Add("onclick", "FrameSrc('MainContent_rptMon_" + _frame.ClientID + "'," + DataBinder.Eval(e.Item.DataItem, "DSC_ID") + ");return false;"); 
     } 
    } 

は、私はあなたが `はCをロードしないiframe`sたいjavascript関数

function FrameSrc(frame, id) { 
    document.getElementById(frame).src = 'ScheduleUpdate.aspx?id=' + id; 
    } 
関連する問題