У меня есть развертывание Project Server 2013 поверх среды SharePoint2013, и я развернул веб-страницу, которая регистрирует JavaScript на странице, во время Page_Load. В этом JavaScript я изменяю значение одного окна ввода страницы сведений о проекте. Однако после полной визуализации страницы новое значение не появляется в поле ввода, и поле ввода все еще включено. Странно то, что я добавил предупреждение JavaScript в тот момент, когда значение было изменено, и я вижу окно предупреждения, поэтому сценарий запускается. И еще одна странная вещь: если я использую IE Developer Tools для ее отладки, я устанавливаю точку останова в скрипте и следую за ней по строкам, а затем, когда страница отображается, значение изменяется и поле отключено. Как я могу изменить значение поля ввода? И почему это работает, если я отлаживаю инструменты разработчика, но не работает, если я просто позволю сценарию нормально работать? Это мой C# код:Измененные значения во время Page_Load не отображаются
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
}