2009-09-25 2 views
1

В asp.net, используя C# .net в конце, после нажатия кнопки Добавить я добавляю запас и закрываю окно (которое я открыл с помощью window.open) с помощью Javascript. Хотя это хорошо работает в других браузерах, [в MSIE], если я продолжаю нажимать кнопку «Добавить», он добавляет несколько записей запаса. Это действительно странное поведение. Любая идея о том, как я могу это преодолеть.Несколько Добавить в IE

AddStock(sessionID, stock,perms); 
string script = "window.parent.closeIFrame();"; 
ClientScript.RegisterStartupScript(this.GetType(), "close", script, true); 

closeIFrame() is defined on the parent page. 

ответ

1

я получил путь к этому мы можем отключить кнопку мыши this is the link to a beautiful article for this

+0

Люди без Javascript включен еще можно нажать несколько раз. –

+0

ya, но мы уверены, что все пользователи имеют Javascript, так как это продукт, который будет использоваться ИТ-компаниями. –

0

Если вы имеете в виду, нажав кнопку Добавить несколько раз сразу после Афоризм, вы должны сделать проверку на стороне сервера, чтобы убедиться, что «AddStock» не будет вызываться несколько раз. Это поведение по умолчанию, так как вы можете сделать несколько POST на бэкэнд, и запрос не будет убит при выполнении другого.

редактировать Вы могли бы хотеть что-то вроде этого,

if(((TimeSpan)(DateTime.Now - (Session["LastAddedStock"] ?? DateTime.Min)).TotalSeconds < 15) 
    //don't proceed, as the last addStock was less than 15 secs. ago 
else 
    //Do Add Stock 
    Session["LastAddedStock"] = DateTime.Now; 
0

Как я могу видеть AddStock (...) процедура в виде ребенка. Итак, почему вам нужно вызвать родительскую функцию, чтобы закрыть дочернюю форму, когда вы можете просто вызвать javascript в той же дочерней форме: close()?