asp.net-4.0 – 我可以强制asp设置与id相同的名称
发布时间:2020-12-16 04:38:23 所属栏目:asp.Net 来源:网络整理
导读:我需要处理一个充满各种不同搜索控件的表单,但是这些搜索控件现在位于母版页内,因此id中添加了额外的垃圾(‘ct100 $Body $TextBox_Postal’而不是’TextBox_Postal’) . 我能够通过设置ClientIDMode = CliendIDMode.Static来解决这个问题,这很好用,因为它不
我需要处理一个充满各种不同搜索控件的表单,但是这些搜索控件现在位于母版页内,因此id中添加了额外的垃圾(‘ct100 $Body $TextBox_Postal’而不是’TextBox_Postal’) .
我能够通过设置ClientIDMode = CliendIDMode.Static来解决这个问题,这很好用,因为它不会尝试在id中包含命名容器.我相信页面上永远不会有两个相同的控件,所以这会起作用. 问题是,当回发表单时,控件将按名称处理.名称仍然是’ct1200 $Body $..’格式,因此processform函数无法找到任何控件.有没有办法让ASP在“静态”模式下设置名称? 解决方法
简短的回答是否定的,您必须覆盖name属性的呈现,例如下面的问题:
ASP.NET: how to remove ‘name’ attribute from server controls?
public class NoNamesTextBox : TextBox { private class NoNamesHtmlTextWriter : HtmlTextWriter { public NoNamesHtmlTextWriter(TextWriter writer) : base(writer) {} public override void WriteAttribute(string name,string value,bool fEncode) { if (name.Equals("name",StringComparison.OrdinalIgnoreCase)) return; base.WriteAttribute(name,value,fEncode); } } protected override void Render(HtmlTextWriter writer) { var noNamesWriter = new NoNamesHtmlTextWriter(writer); base.Render(noNamesWriter); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在创建aspx之后,在文件后创建代码
- asp.net – System.Web.HttpException:请求超时
- 使用dotnet-buildpack将ASP.NET 5应用程序部署到Heroku时出
- asp.net-mvc – 在控制器外部生成路由,类似于Url.RouteUrl(
- asp.net-mvc – System.Web.Mvc.ActionFilterAttribute vs
- asp.net – 比HttpHandlers快的东西?
- 使用可靠的WPF / .NET背景学习ASP.NET MVC
- asp.net – IE7和8随机挂起CSS图像
- 剃刀 – Telerik Kendo MVC TextBox多线模式
- ASP.NET本地化
推荐文章
站长推荐
- asp.net – Azure网站和Azure云服务之间的区别
- ASP.NET MVC – 单元测试,在不使用任何模拟框架的
- asp.net-mvc-3 – 将其他数据发送到Telerik MVC网
- asp.net-mvc-3 – asp.net中的pageBaseType mvc3
- 在ASP.NET Web窗体中收集输入值的推荐方法是什么
- ASP.NET页面授权……你是怎么做到的?
- asp.net – 在IIS 7.5上使用传出异步Web请求时的
- asp.net-mvc-5 – OWIN和IIS集成的内部
- 在Entity Framework中使用存储过程(二):具有继
- ASP.NET Core 2.1身份:如何删除默认UI剃刀页面?
热点阅读