我猜这可能与此有关,但不幸的是,在这种情况下,解决方法似乎不起作用。
在与更大的实现无法正常工作之后,我将其归结为最简单的情况。这不起作用。
public class MyButton : Control
{
public MyButton()
: base()
{
LinkButton but = new LinkButton();
but.CommandName = "test";
but.CommandArgument = "test2";
but.Text = "Click Here";
Controls.Add(but);
}
}
呈现的是:
<a href="javascript:__doPostBack('ctl00$ctl11$ctl07','')">Click Here</a>
这里有两个主要问题。首先,没有身份证。它应该有标签id='ctl00$ctl11$ctl07'
。因此,即使它会发布,事件也永远不会被捕获。
__doPostBackWithOptions
其次,它忽略了 CommandName 和 CommandArgument,无论如何它都应该渲染。
我是不是非常愚蠢,只是忽略了一些明显的东西,还是这是 ASP.NET 中的一个巨大错误?
我已经做过很多次了,之前在 a Control
or中呈现了许多其他控件WebControl
并且从未出现任何问题,所以我猜它一定与简单性而不是复杂性有关。
如果有人可以帮助我解决这个问题,将不胜感激。