我在表单上设置事件时遇到问题。这是设置:
我得到了一个带有两个控件的页面,两个不同版本的表单供最终用户填写——标准和高级。这两种形式有不同的代码和 javascript,所以最初的开发者把它们放在单独的 web 用户控件中。除了控件之外,还有一个可以切换到高级模式的 LinkButton。
<uc1:Standard runat="server" ID="StandardForm" />
<uc1:Advanced runat="server" ID="AdvancedForm" />
<asp:LinkButton runat="server" ID="lnkAdvanced" Text="Go To Advanced" OnClick="lnkAdvanced_Click" />
lnkAdvanced_Click 只是将当前输入的所有信息带到高级并翻转可见。
我的问题是,其中一位老板想要标准表单中的“转到高级”按钮,但 .Visible 代码在页面上。所以我认为可以使用事件来完成,但它似乎不起作用。
我试图设置这样的事件:
public event EventHandler AdvanceClick;
protected void lnkAdvanced_Click(object sender, EventArgs e) {
AdvanceClick(sender, e);
}
当这不起作用时,我尝试设置一个代表:
public delegate void AdvancedEventHandler(object sender, EventArgs e);
public event AdvancedEventHandler AdvanceClick;
当我将按钮移动到标准表单时,我希望能够输入如下内容:
StandardForm.AdvanceClick += new AdvancedEventHandler(GoToAdvanced);
但它似乎无法识别控件内的任何事件!我收到一个错误:“标准不包含'AdvanceClick'的定义,并且没有扩展方法'AdvanceClick接受'标准'类型的第一个参数”它发现其他属性很好,我是不是错了方式?