2016-02-11 1 views
1

J'ai un déploiement de Project Server 2013 au-dessus de l'environnement SharePoint2013 et j'ai déployé un composant WebPart qui enregistre un JavaScript sur la page, au cours de Page_Load. Dans ce JavaScript, je modifie la valeur d'une zone de saisie d'une page Détails du projet. Cependant, une fois la page entièrement rendue, la nouvelle valeur n'apparaît pas dans la zone de saisie et la zone de saisie est toujours activée. Chose étrange est que j'ai ajouté une alerte JavaScript au point où la valeur est modifiée, et je peux voir la fenêtre d'alerte, de sorte que le script s'exécute. Et une autre chose étrange est que si j'utilise IE Developer Tools pour déboguer cela et que je mets un point d'arrêt dans le script, et le suit ligne par ligne, alors quand la page est affichée, la valeur est modifiée et la boîte est désactivée. Comment puis-je modifier la valeur de la zone de saisie? Et pourquoi cela fonctionne-t-il si je débogue sur Developer Tools, mais ne fonctionne pas si je laisse le script fonctionner normalement? Ceci est mon code C#:Les valeurs modifiées pendant Page_Load n'apparaissent pas

public partial class SpecialIDUserControl : UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    try 
    { 
     String fieldGUID = "THIS_A_FIELD_GUID" 
     String specialId = "bla bla bla" 
     String javaScript = @"SetSpecialID('" + fieldGUID + "','" + specialId + "');"; 
     ScriptManager.RegisterStartupScript(this, GetType(), "initializeVar", javaScript, true); 
    } 
    catch (Exception ex) 
    { 
     // stuff 
    } 
    } 
} 

Et voici mon JavaScript

function SetSpecialID(fieldId, specialId) { 
    var $puidElement = $("[GUID='" + fieldId + "']"); 
    $puidElement.val(specialId); 
    WPDPParts[0].IsDirty = true; //makes the page dirty, so the user gets a notification for saving 
    } 
    $puidElement.attr('disabled', 'disabled'); //disables input box, since this field should not be manually changed 
} 

Répondre

0

Essayez ceci:

id_field = "field_name"; 

$('input[title="'+id_field '"]').attr("value",specialId); 
$('input[title="'+id_field +'"]').attr("LTValue",fieldGUID);