0

我正在使用iframe從父頁面打開新的.aspx頁面。子頁面正在使用ajaxcontroltoolkit(ajax CalendarExtender)。現在在表單提交中,我想關閉iframe並返回到父頁面。爲此,我使用以下代碼。window.parent.location.href不在asp.net中使用ajaxcontroltoolkit

ClientScript.RegisterStartupScript(this.GetType(), "scriptid", window.parent.location.href='ViewVendors.aspx'", true); 

,如果我從孩子頁面刪除AJAX控件,但不使用Ajax控制工作,這工作文件。 我想使用calenderExtender和iframe兩者。我該如何使用它,以及這種所謂的異常行爲有什麼問題。

這是我提交按鈕事件處理程序的代碼。

protected void btnUpdate_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     objVendor.VendorID = Convert.ToInt64(Request.QueryString["Id"]); 
     objVendor.Name = txtName.Text; 
     objVendor.BillingAddress = txtBillingAddress.Text; 
     objVendor.ShippingAddress = txtShippingAddress.Text; 
     objVendor.ContactPersonName = txtContactPerson.Text; 
     objVendor.ContactNumber = txtContactNumber.Text; 
     objVendor.EmailID = txtEmailID.Text; 
     objVendor.VendorSinceDate = Convert.ToDateTime(txtVendorDate.Text); 
     objVendor.IsActive = Convert.ToBoolean(rdblStatus.SelectedValue); 
     objVendor.Logo = FileUpload(); 
     int intResult = objVendor.UpdateVendor(); 
     if (intResult > 0) 
     { 
      ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "window.parent.location.href='ViewVendors.aspx'", "scriptid", true); 
      //ClientScript.RegisterStartupScript(this.GetType(), "scriptid", "window.parent.location.href='ViewVendors.aspx'", true); 
     } 
    } 
    catch (Exception ex) 
    { 
     lblMessage.Text = ex.Message; 
     lblMessage.CssClass = "ERROR"; 
    } 
} 

//編輯 現在我的代碼,只要我不加壓延機擴展到子頁面正常工作。 當我在子頁面中添加日曆擴展器時,它顯示錯誤「控件集合無法修改,因爲控件包含代碼塊(即<%...%>)」。如果我刪除日曆擴展器,它再次運行良好。通過做一些谷歌搜索,我發現在Javascript標記<%>正在創建問題。我該如何解決這個問題,以及爲什麼日曆控制在這種情況下造成問題?

這是我的腳本代碼。

<script type="text/javascript"> 
    function uploadStarted() { 
     $get("imgDisplay").style.display = "none"; 
    } 
    function uploadComplete(sender, args) { 
     var imgDisplay = $get("imgDisplay"); 
     // var imgPhoto = $get("#imgPhoto"); 
     var imgPhoto = document.getElementById('<%=imgPhoto.ClientID %>'); 
     imgDisplay.src = "images/loader.gif"; 
     imgPhoto.style.display = "none"; 
     imgDisplay.style.cssText = ""; 
     var img = new Image(); 
     img.onload = function() { 
      imgDisplay.style.cssText = "height:100px;width:100px"; 
      imgDisplay.src = img.src; 
     }; 
     img.src = "<%=ResolveUrl(UploadFolderPath) %>" + args.get_fileName(); 

    } 
</script> 

回答

1

您需要使用您的網頁上ScriptManager實例來註冊你的JavaScript - 這,如果你正在使用AJAX,你應該已經有了。它有自己的RegisterStartupScript方法,您可以使用。

+0

scriptmanager的實例未顯示RegisterStartupScript方法。你能請詳細解釋一下例子嗎?這裏是scriptmanatger的實例

+0

它是一個靜態方法,所以你可以像這樣在代碼中調用它:'System.Web .UI.ScriptManager.RegisterStartupScript(...)' –

+0

..我這樣寫ScriptManager.RegisterStartupScript(this.Page,this.GetType(),「window.parent.location.href ='ViewVendors.aspx」,「scriptid 「,是);仍然沒有工作。我想在作爲父頁面的ViewVendors.aspx頁面重定向。我的代碼有什麼問題? –

相關問題