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
热点阅读