我想<button>在ASP.NET网站中使用较新的标签,除其他外,它允许CSS样式的文本并在按钮内嵌入图形.asp:Button控件呈现为<input type="button">,有没有办法让预先存在的控件渲染到<button>?
从我读过的内容来看,当按钮位于a中时<form>,IE发布按钮的标记而不是value属性是不兼容的,但是在ASP.NET中它将使用onclick事件来触发__doPostBack,所以我不喜欢认为这将是一个问题.
我有什么理由不这样做吗?如果没有,您将如何使用asp:Button或基于它的新服务器控件来支持它?如果可以避免,我宁愿不编写自己的服务器控件.
起初该<button runat="server">解决方案有效,但我立即遇到了需要具有CommandName属性的情况,HtmlButton控件没有该属性.看起来我将需要创建一个从Button继承的控件.
我需要做什么才能覆盖渲染方法并使其呈现我想要的东西?
UPDATE
DanHerbert的回复让我有兴趣再次寻找解决方案,所以我花了一些时间来研究它.
首先,有一种更容易的方法来重载TagName:
public ModernButton() : base(HtmlTextWriterTag.Button)
{
}
Run Code Online (Sandbox Code Playgroud)
Dan的解决方案存在的问题是标记的innerhtml被放置在value属性中,这会导致回发时出现验证错误.一个相关的问题是,即使你正确地渲染value属性,IE的<button>标签的braindead实现也会发布innerhtml 而不是值.因此,任何实现都需要覆盖AddAttributesToRender方法才能正确呈现value属性,并且还为IE提供某种解决方法,因此它不会完全搞砸回发.
如果要利用数据绑定控件的CommandName/CommandArgument属性,IE问题可能是不可克服的.希望有人可以为此建议解决方法.
我在渲染方面取得了进展:
这将呈现为<button>具有正确值的正确html ,但它不适用于ASP.Net PostBack系统.我已经写了一些我需要提供的Command事件,但它没有激发.
当用常规的asp:Button并排检查这个按钮时,它们看起来与我需要的差异相同.所以我不确定Command在这种情况下ASP.Net是如何连接事件的.
另一个问题是,不呈现嵌套的服务器控件(正如您可以使用ParseChildren(false)属性看到的那样).在渲染过程中将文字html文本注入控件非常容易,但是如何允许支持嵌套服务器控件呢?
有谁知道是否可以使用iText将HTML页面(url)转换为PDF?
如果答案是'不',那也没关系,因为我将不再浪费时间试图解决这个问题而只是在我认识的许多组件中花费一些钱:)
在此先感谢您的回复!
我在这里有一个特殊的问题,我不能通过我的生活弄清楚解决方案是什么.请注意,以下代码不是动态创建的,而是直接在我的aspx文件中创建.
<button type="button" runat="server" id="btnSubmit"
OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');">
Submit
</button>
Run Code Online (Sandbox Code Playgroud)
这只要工作就好了,因为我不具备的onclick属性在那里,即OnServerClick处理程序被触发,因为它应该.但是当我使用该onclick属性时,无论我是否确认或拒绝确认对话框.
我究竟做错了什么?谢谢
我试图查看sys.dm_db_missing_index_details来检查我的SQL Server 2005数据库上是否缺少索引.它没有返回任何行.
它可能是空的但很不可能,因为我没有在任何表上添加任何索引(除了通过创建主键获得的索引).我也在运行单元测试以及adhoc开发测试(使用Linq to SQL),因此存在一些针对它的活动.
我是否需要打开此数据的捕获?
这仅在某些版本的SQL Server 2005上受支持吗?
提前感谢任何帮助的努力.
asp.net ×2
html ×2
htmlbutton ×2
c# ×1
dmv ×1
events ×1
itext ×1
onclick ×1
pdf ×1
sql-server ×1