我尝试使用 OnClick 回调来调用 C# 函数,但是 javascript 抛出错误,指出该函数未定义(即使它位于 C# 代码中)。
只有当我通过 Controls.Add 添加控件到 C# 调用后面部分的 page_load 时,才会发生这种情况。
换句话说,如果我这样做(在 Page_Load 函数中):
LinkButton l = new LinkButton();
l.Text = "Test";
l.ID = "TestID";
l.Attributes.Add("OnClick", "LinkButton_Click");
l.Attributes.Add("runat", "server");
l.Page = Page;
this.Controls.Add(l);
LinkButton_Click 不是根据 javascript 定义的,但是如果我这样做:
在 ascx 文件中,它运行良好并且实际上调用了 C# 函数。
最佳答案
事件处理程序应附加在服务器端:
LinkButton l = new LinkButton();
l.Text = "Test";
l.ID = "TestID";
l.Click += LinkButton_Click;
l.Page = Page;
this.Controls.Add(l);
当您使用Attributes
属性时,您实际上附加了一个不存在的客户端函数。
关于c# - OnClick回调认为它是一个javascript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4035614/