动态控件的新手,但直到现在我一直在我的 gridview 的模板字段中成功创建它们,最近从超链接切换到链接按钮并且不得不进行一些更改但仍然无法正常工作
在我的页面中,我有以下代码(精简为突出部分)
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
...
...
TemplateField tf = new TemplateField();
tf.HeaderText = "Action";
tf.ItemTemplate = new AssignPage.MyTemplate(..., mylb);
GridView1.Columns.Add(tf);
protected void Page_PreInit(object sender, EventArgs e)
{
LinkButton lb = new LinkButton();
lb.Text = "AssignAll";
lb.Command += new CommandEventHandler(AssignAll_Click);
lb.CommandName = "XXX";
this.mylb = lb;
protected void AssignAll_Click(object sender, CommandEventArgs e)
{
string[] arg = new string[2]; // BREAK POINT HERE
arg = e.CommandArgument.ToString().Split(';');
...
...
Response.Redirect("BaseAndRepeats.aspx?id=" + r.Event.ID);
在我有的模板类中
LinkButton lb;
public MyTemplate(..., LinkButton _lb)
{
...
lb = _lb;
...
public void InstantiateIn(System.Web.UI.Control container)
{
...
...
// various conditional statements
lb.CommandArgument = mylist[rowCount].ReqtID.ToString() + ";" + mylist[rowCount].RotaUser;
container.Controls.Add(lb);
...
处理程序中的断点永远不会到达
我以为我在正确的位置创建了链接按钮,当我单击链接按钮时,链接按钮非常高兴地出现在网格中,调用了 Page_PreInit 和 Page_Load 并且正如我预期的那样,它是一个回发。但是永远不会调用 AssignAll_Click。
在浏览器页脚中,当您将鼠标悬停在按钮链接上时,它会显示“javascript: __dooPsotabck(...”