asp.net – 动态创建的DropDownList在Postback上丢失了ListItems
发布时间:2020-12-16 04:07:36 所属栏目:asp.Net 来源:网络整理
导读:我有一个页面,其中包含一些动态创建的控件(TextBox和DropDownList).发生回发时,TextBox会保留其值,但DropDownLists会丢失其ListItem. 这非常令人困惑,因为页面级DropDownList也保留其ListItems.任何人都可以看到下面的代码有什么问题吗? 任何帮助解决这个问
|
我有一个页面,其中包含一些动态创建的控件(TextBox和DropDownList).发生回发时,TextBox会保留其值,但DropDownLists会丢失其ListItem.
这非常令人困惑,因为页面级DropDownList也保留其ListItems.任何人都可以看到下面的代码有什么问题吗? 任何帮助解决这个问题将不胜感激. <%@ Page Language="VB"%>
<script runat="server">
Protected Sub Page_Init(ByVal sender As Object,ByVal e As System.EventArgs)
If Not Page.IsPostBack Then
ddlFixed.Items.Add(New ListItem("12","13"))
ddlFixed.Items.Add(New ListItem("14","15"))
End If
Dim i As Integer
For i = 0 To 3
Dim ddl As New DropDownList
ddl.ID = "ddlPage" & i
ddl.EnableViewState = True
If Not Page.IsPostBack Then
ddl.Items.Add(New ListItem("12","13"))
ddl.Items.Add(New ListItem("14","15"))
End If
pnlDynamic.Controls.Add(ddl)
Dim txtBx As New TextBox
txtBx.ID = "txtPage" & i
If Not Page.IsPostBack Then
txtBx.Text = "Preset"
End If
pnlDynamic.Controls.Add(txtBx)
Next
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enableviewstate="true">
<div>
<br />
<br />
<a href="Default.aspx">Get-Request</a>
<br />
<br />
<asp:Panel runat="server" ID="pnlDynamic" EnableViewState="true" />
<br />
<br />
<asp:DropDownList runat="server" ID="ddlFixed" />
<asp:Button runat="server" ID="btn" Text="Postback"/>
</div>
</form>
</body>
</html>
解决方法
我找到了一个解决方案,可以让我在回发中保持视图状态.
它是调用ItemCollection的TrackViewState. CType(ddl.Items,IStateManager).TrackViewState() 感谢大家的帮助. 这是工作解决方案: <%@ Page Language="VB"%>
<script runat="server">
Protected Sub Page_Init(ByVal sender As Object,"15"))
End If
Dim i As Integer
For i = 0 To 3
Dim ddl As New DropDownList
ddl.ID = "ddlPage" & i
CType(ddl.Items,IStateManager).TrackViewState()
If Not Page.IsPostBack Then
ddl.Items.Add(New ListItem("12","15"))
End If
pnlDynamic.Controls.Add(ddl)
Dim txtBx As New TextBox
txtBx.ID = "txtPage" & i
If Not Page.IsPostBack Then
txtBx.Text = "Preset"
End If
pnlDynamic.Controls.Add(txtBx)
Next
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" >
<div>
<br />
<br />
<a href="Default.aspx">Get-Request</a>
<br />
<br />
<asp:Panel runat="server" ID="pnlDynamic" />
<br />
<br />
<asp:DropDownList runat="server" ID="ddlFixed" />
<asp:Button runat="server" ID="btn" Text="Postback"/>
</div>
</form>
</body>
</html>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- razor – 如何将值绑定到ASP.NET Core MVC中枚举中每个项的
- asp.net – IIS中的静态压缩不适用于htm,js文件
- asp.net – 替换web.config变换中的IIS重写规则
- asp.net-mvc – 获取表单域的生成clientid
- asp.net-mvc – ELMAH.axd是可浏览的,但永远不会记录我的任
- asp.net-mvc – 在MVC3中使用Html.BeginForm是什么
- 如何比较vbscript / ASP中的两个日期?
- asp.net-mvc – 应用程序服务层作为静态类
- asp.net – 即使在ssl上,在ViewState中存储信用卡和定价信息
- asp.net-mvc – asp.net mvc错误处理的最佳做法
推荐文章
站长推荐
- 使用Reporting Services(SSRS)作为ASP.NET Core站
- 白话ASP.NET MVC之三:Controller是如何解析出来
- asp.net-mvc – System.Web.Optimization与Micro
- asp.net – 如何引用主域名而不用硬编码它的名字
- templates – 相当于ASP Classic中的母版页
- asp.net-mvc – ASP.NET MVC显示格式不会将DateT
- Application_Start ASP.NET
- asp.net-mvc-3 – Appharbor URL中的端口号导致页
- VS2017搭建ASP.Net Core和Angular5项目
- asp.net-core – options的用途.AutomaticAuthen
热点阅读
