我有一个asp.net下拉列表,其中enableviewstate为false 我在不使用ispostback的情况下绑定了pageload中的下拉列表。
protected void Page_Load(object sender, EventArgs e)
{
binddropdown();
}
我已将enableviewstate设置为false,因为我检查了很多viewstate信息是否存储在隐藏的field.due中,哪个页面呈现得很慢。
当我更改下拉列表选中项目并单击提交按钮。下拉列表selectedindex松散,因为在页面加载时我是绑定下拉列表。
如何有效地使用viewstate和pagelifecycle。
答案 0 :(得分:1)
您的代码问题在于,由于您已禁用了下拉列表的ViewState
,因此无法保留这些项目,并且每个回发项目都会被填充(显然我们必须像您一样) 。由于项目再次添加,您的下拉列表将再次重置,您无法获得所选值。
恕我直言,你不应该禁用你的下拉列表的 protected void Page_Load(object sender, EventArgs e)
{
binddropdown();
if(IsPostBack)
{
DropDownList1.SelectedValue = Request.Form["DropDownList1"];
}
}
。但是,如果您已经使用,则可以使用表单集合设置所选值,如下所示: -
只需在初始页面加载时绑定下拉列表: -
public class ServicesModule : NinjectModule
{
public override void Load()
{
Kernel.Bind<IDocumentServiceApi>().To<DocumentServiceApi>().InRequestScope();
Kernel.Bind<IConfigurationService>().To<ConfigurationService>().InRequestScope();
Kernel.Bind<IReportGenerationProcessor>().To<ReportGenerationProcessor>().InRequestScope();
}
}