我之前提出了一个类似的问题,并且似乎基于我收到的答案,我不能指望能够依赖单选按钮的CheckedChanged事件来实时触发。
我真的坚持等到该事件触发之前提交表单,还是我可以添加客户端(jQuery)代码来处理它?如果是这样,怎么做?如何在 Sharepoint (2010) 项目中将 jQuery 客户端代码与我的 C# 服务器代码混合?
我现在想要做的是根据用户做出的决定动态改变页面上的控件(如果他们选择了这个单选按钮,一个特定的文本框应用了这组属性,如果另一个单选按钮,一组不同的属性)。这可能吗?
更新
我创建控件并向它们添加 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);
}
}
Save 按钮有什么特别之处,它在单击时会立即触发,但 RadioButton 的 CheckedChanged 事件不会(立即)触发?
更新 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;
...我会发现的,我想...