在Page_Load显示期间更改的值

时间:2016-02-11 10:03:06

标签: javascript c# jquery sharepoint ms-project

我在SharePoint2013环境之上部署了Project Server 2013,并且我在Page_Load期间部署了一个在页面上注册JavaScript的webpart。在这个JavaScript中,我更改了项目详细信息页面的一个输入框的值。但是,在页面完全呈现后,新值不会出现在输入框中,并且仍然启用输入框。 奇怪的是,我已经在更改值的位置添加了JavaScript警报,并且我可以看到警报窗口,因此脚本会运行。另一个奇怪的事情是,如果我使用IE Developer Tools来调试它并在脚本中设置一个断点,并逐行跟随它,那么当呈现页面时,值会被更改并且该框被禁用。 如何更改输入框的值?如果我在开发人员工具上调试它为什么会起作用,但如果我让脚本正常运行则不起作用? 这是我的C#代码:

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
    }
  }
}

这是我的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
}

1 个答案:

答案 0 :(得分:0)

试试这个:

id_field = "field_name";

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