2009-06-08 4 views
0

J'ai un formulaire composé d'une zone de texte et d'un bouton. Un clic sur le bouton apparaît une fenêtre qui contient une grille de données à partir de laquelle je peux sélectionner la valeur textbox (en utilisant javascript). Dans IE6 et IE7, je peux sélectionner la valeur de la grille dans la popup, mais dans IE8, Mozilla et chrome iam pas en mesure de sélectionner.Quel peut être la raison.Peut-on aider à résoudre ce problème? Après javascript, j'ai utilisé pour lier la valeur sélectionnée dans le popup à la zone de texte. fonction Passback (FieldID, FieldValue) {datagrid/textbox fonctionne dans IE 6/7, mais pas les autres

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; 

} 

Voici le code que je fais appel au databound de la grille.

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

Vous avez besoin de poster du code ... – cgreeno

+0

Je l'ai retagged - cela n'a rien à voir avec ASP.NET ou VB –

+0

Avez-vous trouvé une solution pour cela? était-il lié au bug IE <8? – scunliffe

Répondre

1

Non sans avoir regardé votre code. Mais il semblerait que vous utilisez un javascript spécifique à IE.

0

Quelques points clés:

1.) Étant donné que cela affecte IE8 et tous les autres navigateurs, il est très probable que vous avez été pris avec le correctif dans IE8 pour mettre en œuvre correctement document.getElementById(id). Dans les versions précédentes d'Internet Explorer, IE renvoyait les correspondances qui étaient a.) Une correspondance de type dIfFeReNt CaSe, et éléments qui avaient un attribut "nom" correspondant. Ce sont des erreurs majeures dans la mise en œuvre, mais beaucoup de sites ont construit du code basé sur le bug d'IE. (bug report and fix for IE versions before IE8)

2.) Qu'est-ce que votre:

GetCenterWindowParams(); 

Fonction remplir? Je ne vois pas d'où vous obtenez vos valeurs xOffset, yOffset.

3.) Est-ce que vous définissez "self" quelque part? à moins que vous ne l'ayez défini, "self" n'est pas un synonyme de "this".