问题: :带有向导控件的内容页面,带有更新型和占位符。上方是更新程序列表是一个下拉列表。当用户更改下拉列表中的选择时,我需要在下拉列表下方显示不同的输入控件。当用户在向导控件上单击“下一步”时,我还需要能够从这些动态控件中获取数据。

我知道必须在OnInit方法中创建所有动态控件,以便在寄回期间从这些控件中恢复数据。但是,当下拉列表的SelectedIndexChanged事件被启动时,onInit方法被称为...然后是Pageload ...最后,调用了SelecteIndIndexChanged事件的处理程序。 ViewState直到调用OnInit和Pageload方法之后才恢复,因此无法知道在列表框中选择的用户在on ininit中选择了什么...创建动态控件。

那么...您如何解决这个问题?您是否只需要使用JavaScript编写整个页面?

提前致谢。

有帮助吗?

解决方案

我倾向于使用旧学校的方法来实现这种要求。我会在更新面板中编写所有需要的控件,并将其可见属性设置为false。然后,在后面阅读下拉菜单的状态,并将适当的控件可见属性设置为真。这样,就没有“动态”控件,并且由于没有渲染可见属性的控件,因此直到用户应该看到它们才下载它们。

其他提示

您也可以使用 ASP:HiddenField 并将值设置为您在精神上创建的情况。然后在顶部运行一个小的jQuery脚本以查看

$(document).on("change", "#ddlSelector", setControls);

然后只需做一个函数,例如:

function setControls(event) { 
    event.preventDefault();
    var selector = hiddenfield.val();
}

然后,可以通过获得标签来完成任何显示/隐藏的项目:

$("#elementName").css("display", "inline"); 

或显示,无要隐藏。我在工作中使用了此功能,因为有时您需要更改而无需解雇寄回,但是在参与表格时仍会收集数据。

我通常避免使用许多事件来实现代码和安全性的许多事件,但是有时使用jQuery的DOM Element操纵可能会容易得多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top