在不可见的asp.net面板中阻止数据绑定
|
不呈现隐藏(visible =“false”)面板,但是对包含的元素执行数据绑定.为什么这样做?更重要的是,如何避免它? 这是一个烦人的例子: <asp:Panel ID="UserPanel" runat="server" visible="<%# SelectedUser != null %>">
<%# SelectedUser.Name %>
</asp:Panel>
如果SelectedUser为null,则不会呈现该面板,但会评估SelectedUser.Name并生成错误. 我显然可以写<%#SelectedUser!= null? SelectedUser.Name:“”%>但它增加了混乱. 当我知道不需要时,有没有办法简单而优雅地阻止面板内的数据绑定? Panel控件在这里并不重要,它可以是一个带有runat =“server”的纯HTML元素的占位符. 解决方法我可能会迟到这一点,但我也觉得这很烦人.如果我正在渲染一个项目列表,每个项目可能是一个不同的类,我经常需要这个 – 在这种情况下,数据绑定表达式中的属性将在其他类类型的不可见部分中给出错误.你会知道你是否想要这个. 我找到的最佳解决方案如下所述: http://hermanussen.eu/sitecore/wordpress/2011/04/prevent-nullrefs-when-databinding-with-placeholders/ 解决方案是标准PlaceHolder控件的简单覆盖,以在Visible为false时禁止绑定子控件: using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
namespace Website.Controls
{
public class DataPlaceHolder : PlaceHolder
{
protected override void DataBindChildren()
{
if (Visible)
{
base.DataBindChildren();
}
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在web.config的MailSetting部分设置友好的电
- asp.net-mvc-routing – 如何检查给定路径是否存在路由(ASP
- asp.net-mvc – ASP.NET MVC中的WebApi [FromUri]是什么?
- asp.net – MVP MVC和MVVM之间的区别
- asp.net-mvc – MVC和NOSQL:直接将视图模型保存到MongoDB?
- asp.net AJAX实现无刷新获得数据
- asp.net – 运行Quartz.NET嵌入式或作为Windows服务的优点和
- asp.net – 是否有支持请求参数连接的URL构建器?
- asp.net – 在IE10中不应该“X-UA兼容IE =边缘”头覆盖“兼
- 如何在ASP.Net MVC应用程序中访问WCF服务?
- asp.net-mvc – 是否有官方的ASP.NET MVC参考/示
- asp.net-mvc-3 – ASP.NET MVC 3中ViewBag.Title
- asp.net-mvc – ASP.NET MVC:在回发上更改模型的
- asp.net-web-api2 – 在WebAPI2项目中加载System
- asp.net – 我希望从代码中获取属性值
- asp.net-mvc – 使用NHibernate时如何处理成员资
- asp.net – Web Api – 如何直接从OnActionExecu
- 使用ASP.NET创建缩略图的“最佳”方法是什么?
- asp.net-mvc – 获取表单域的生成clientid
- asp.net – LINQ:不支持查询运算符’ElementAtO
