Я задавал аналогичный вопрос об этом раньше, и, похоже, он основан на ответы, которые я получил, что я не могу полагаться на то, что событие CheckedChanged радиокнопки будет срабатывать в режиме реального времени.
Я действительно застрял в ожидании отправки формы до того, как это событие сработает, или я могу добавить код на стороне клиента (jQuery) для его обработки? Если да, то как? Как я могу смешать код клиента jQuery с кодом сервера C# в проекте Sharepoint (2010)?
Теперь я хочу иметь возможность динамически изменять элементы управления на странице в зависимости от решений, принятых пользователем (если они выбирают этот переключатель, к конкретному текстовому полю применяется этот набор свойств, и если другой переключатель, другой набор свойств). Это возможно?
ОБНОВИТЬ
Я создаю элементы управления и добавляю к ним события CheckedChanged следующим образом:
rbUSCitizenOrPermResY = new RadioButton
{
CssClass = "finaff-webform-field-input"//,
//CheckedChanged += new EventHandler(rbUSCitizenOrPermResY_Changed) <= the name 'CheckedChanged' does not exist in the current context
};
rbUSCitizenOrPermResY.CheckedChanged += new EventHandler(rbUSCitizenOrPermResY_Changed);
cellRadioButton1_1.Controls.Add(rbUSCitizenOrPermResY);
Кнопка Сохранить выглядит так:
Button btnSave = new Button();
btnSave.Text = "Save";
btnSave.Click += new EventHandler(btnSave_Click);
this.Controls.Add(btnSave);
. . .
private void btnSave_Click(object sender, EventArgs e)
{
LiteralControl message = null;
try
{
message = new LiteralControl();
Controls.Add(message);
ConditionallyCreateList();
SaveInputToList();
List<ListColumns> listOfListItems = ReadFromList();
GeneratePDF(listOfListItems);
message.Text = "Saving the data and converting it to a PDF has been successful";
}
catch (Exception ex)
{
message.Text = String.Format("Exception occurred: {0}", ex.Message);
}
}
Что особенного в кнопке «Сохранить», которая срабатывает сразу при нажатии, но событие CheckedChanged RadioButton не срабатывает (сразу)?
ОБНОВЛЕНИЕ 2
Это говорит: "...Элемент управления UpdatePanel .. . по умолчанию этот элемент управления не работает с этими стандартными компонентами SharePoint..."
Так что это звучит так, как если бы вы пытались втиснуть ногу дровосека в детскую добычу.
Каков же предпочтительный способ обновления компонентов Sharepoint?
ОБНОВЛЕНИЕ 3
Теоретически, возможно, это сработает:
UpdatePanel up = new UpdatePanel();
up.Controls.Add(dynamicTable); // or just add the radio buttons, rather than the entire HtmlTable?
ScriptManager sm = new ScriptManager();
sm.EnablePartialRendering = true;
... Я узнаю, я думаю ...
PITA
. Для разработчиков это чрезвычайно легко, наверное, 2-3 балла по этой шкале. Для пользователей выполняется частичное обновление страницы. Так что это немного некрасиво. Это также приводит к тому, что браузер теряет любой фокус ввода в любых полях, затронутых обновлением. (Он обновляет часть страницы вUpdatePanel
, так что, вероятно, 12-14.) - person Der Kommissar   schedule 28.05.2015