asp.net – ascx中的Updatepanel刷新了整个控件
发布时间:2020-12-16 06:27:19 所属栏目:asp.Net 来源:网络整理
导读:我有一个sitecore proejct,我已经以ascx用户控件的形式准备了一个子布局.我需要在这个用户控件中设置级联下拉菜单,并根据我发现的UpdatePanel是要走的路.问题是UpdatePanel似乎刷新了整个控件,我不认为这是正确的行为. 我知道SO上有一些类似的问题,但没有一
我有一个sitecore proejct,我已经以ascx用户控件的形式准备了一个子布局.我需要在这个用户控件中设置级联下拉菜单,并根据我发现的UpdatePanel是要走的路.问题是UpdatePanel似乎刷新了整个控件,我不认为这是正确的行为.
我知道SO上有一些类似的问题,但没有一个解决方案适合我.我也开始怀疑这可能是Sitecore的具体问题. 以下是用户控件的代码示例: <p><%= MyItem.Text %>" /></p> <asp:UpdatePanel ID="LocationFilterUpdatePanel" runat="server"> <ContentTemplate> <asp:DropDownList ID="DDL1" OnSelectedIndexChanged="DDL1_SelectedIndexChanged" runat="server" AutoPostBack="true"> </asp:DropDownList> <asp:DropDownList ID="DDL2" OnSelectedIndexChanged="DDL2_SelectedIndexChanged" runat="server" AutoPostBack="true"> </asp:DropDownList> </ContentTemplate> </asp:UpdatePanel> 而守则背后: protected void Page_Load(object sender,EventArgs e) { if (!System.Web.UI.ScriptManager.GetCurrent(Page).IsInAsyncPostBack) { var context = new SitecoreContext(); //Get Model from Sitecore DDL1.DataSource = Model.Data; DDL1.DataValueField = "Id"; DDL1.DataTextField = "Name"; DDL1.DataBind(); } } protected void DDL1_SelectedIndexChanged(object sender,EventArgs e) { var context = new SitecoreContext(); //Get Model from Sitecore DDL2.DataSource = Model.Data; DDL2.DataValueField = "Id"; DDL2.DataTextField = "Name"; DDL2.DataBind(); } protected void DDL2_SelectedIndexChanged(object sender,EventArgs e) { } 页面加载正常,但(调试时)更改DDL1的索引,它将在MyItem.Text中显示Null异常.这是在控制面板之外.注意:我还添加了一个脚本管理器. 我尝试过很多东西.设置不同的更新模式,通过从Package Manager控制台执行Install-Package AjaxControlToolkit来更新我的解决方案中的AjaxToolkit ……但行为保持不变. 谢谢. 解决方法
将DDL1的数据绑定放入OnInit,而不是Page_Load. 并且不要在那里包含if语句,只需执行数据绑定. 在OnInit之后,将正确设置所选值,您将能够访问其他事件处理程序中的DDL1选项.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用@ Html.DisplayNameFor()与PagedList
- ASP.NET MVC 3中的c# – @ Html.ActionLink
- ASP.NET mvc:如何使用今天的日期自动填充日期字段?
- asp.net – 127.0.0.1此站点无法提供安全连接
- 在Entity Framework中使用存储过程(二):具有继承关系实体
- ASP.NET中模式弹出窗口的最佳选择?
- asp.net-mvc-2 – 在发布网站后无法在asp.net mvc2中加载类
- asp.net-mvc – 如何GetBytes()在C#与UTF8编码与BOM?
- asp.net-mvc – 为什么httphandler没有运行
- asp.net-mvc – 使用GUID作为ASP.NET MVC数据库中的ID
推荐文章
站长推荐
- .net – 如何更改乌节纪录库
- asp.net – MembershipProvider在代码中更改连接
- asp.net-core – “netcoreapp1.0”是一个不受支
- asp.net-mvc – Visual Studio断点未被击中
- asp.net-mvc – 运行Update-Database时出错
- asp.net-mvc-4 – 如何使WebSecurity.Login使用用
- asp.net – 如何在web.config中增加执行sql查询的
- asp.net – Repeater Control中的条件逻辑?
- asp.net – 移动设备的CSS有时会恢复原状
- asp.net-mvc-4 – 尝试从Visual Studio 2012项目
热点阅读