Page_Load 期间更改的值不显示

Changed values during Page_Load don't show up

我在 SharePoint2013 环境之上部署了一个 Project Server 2013,并且我在 Page_Load 期间部署了一个在页面上注册 JavaScript 的 Web 部件。在这个 JavaScript 中,我更改了项目详细信息页面的一个输入框的值。但是,页面完全渲染后,新值并没有出现在输入框上,输入框仍然处于启用状态。 奇怪的是,我在值改变的点上加了一个JavaScript alert,我可以看到alert window,所以脚本运行s。另一件奇怪的事情是,如果我使用 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
}

试试这个:

id_field = "field_name";

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