Я использую iframe для открытия новой страницы .aspx с родительской страницы. дочерняя страница использует ajaxcontroltoolkit (ajax CalendarExtender). Теперь при отправке формы я хочу закрыть iframe и вернуться на родительскую страницу. Для этого я использую следующий код.
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>