DataGrid / текстовое поле работает в IE 6/7, но не в других - PullRequest
0 голосов
/ 08 июня 2009

У меня есть форма, состоящая из одного текстового поля и кнопки. При нажатии на кнопку появляется одно всплывающее окно, содержащее одну сетку данных, из которой я могу выбрать значение, такое, что значение появляется в текстовом поле (с использованием JavaScript). В IE6 и IE7 я могу выберите значение из сетки во всплывающем окне, но в IE8, Mozilla и Chrome я не могу выбрать. В чем может быть причина. Кто-нибудь может помочь решить эту проблему? Следуя JavaScript, я использовал для привязки значения, выбранного во всплывающем окне, в текстовое поле. функция PassBack (FieldId, FieldValue) {

if (window.opener && !window.opener.closed)
{
     window.opener.document.getElementById(strFieldName).value = FieldValue;
     window.opener.document.getElementById(strhidFieldName).value = FieldId;
     window.opener.document.getElementById(strFieldName).focus();
     window.close();
}

}

function openPopup(hidfield_name,field_name,SType) 
{
    url = location.protocol+'//'+ location.host + '/User/Search.aspx?refId='+field_name+'&SearchType='+SType+'&hidid='+hidfield_name;
    if (!newwindow.closed && newwindow.location)
     {
        newwindow.location.href = url;
    }
    else
     {
     GetCenterWindowParams();

        newwindow=window.open(url,'winLOV', 'scrollbars=yes,resizable=yes,width=470,height=400,screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+'');
        if (!newwindow.opener) newwindow.opener = self;
    }
    if (window.focus) {newwindow.focus()}
    return false;

}

Ниже приведен код, который я вызываю в базе данных сетки.

  currentCell.Attributes.Add("OnClick", "javascript:PassBack('" & CType(e.Item.DataItem, DataRowView).Row(0) & "','" & str.Trim & "');")

Ответы [ 2 ]

1 голос
/ 08 июня 2009

Не без просмотра вашего кода. Но может показаться, что вы используете какой-то специфический для IE JavaScript.

0 голосов
/ 08 июня 2009

Несколько ключевых моментов:

1.) Поскольку это влияет на IE8 и все другие браузеры, очень , вероятно, вы попали в исправление в IE8 для правильной реализации document.getElementById(id). В предыдущих версиях IE IE возвращал совпадения, которые были a.) Совпадением dIfFeReNt CaSe, AND элементов, которые имели соответствующий атрибут «name». Это были серьезные ошибки в реализации, но многие сайты создавали код на основе ошибки IE. ( отчет об ошибках и исправление для версий IE до IE8 )

2.) Что делает ваш:

GetCenterWindowParams();

Функция заполнить? Я не вижу, откуда вы получаете значения xOffset, yOffset.

3.) Вы определяете где-то себя? если вы не определили это, «self» не является синонимом «this».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...