我有一个asp按钮,我想在点击时将参数发送到codebehind。 所以我喜欢这个教程: http://www.devchix.com/2007/08/10/aspnet-passing-parameters-in-button-click-handler/
我有按钮:
<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
和事件:
void MyBtnHandler(Object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.CommandName)
{
case "ThisBtnClick":
//lala
break;
}
但是当我跑步时,有一个'编译错误'。
编译器错误消息:CS1061:'ASP.softwares_aspx'不包含 'MyBtnHandler'的定义,没有扩展方法'MyBtnHandler' 可以找到接受“ASP.softwares_aspx”类型的第一个参数 (您是否缺少using指令或程序集引用?)
来源错误:
第110行:第111行:第112行:
第114行:
为什么?
谢谢!
答案 0 :(得分:2)
根据我的评论 - 如果您未授予某项功能,则标准为private
。
如果您给它public
或protected
,则OnClick
处理程序可以看到该函数。
首先,我会选择protected
,这意味着点击处理程序会看到它,但它不会成为其他类的可用函数。 (除非它们是派生的,这是一个完整的其他主题)
所以改变......
void MyBtnHandler(Object sender, EventArgs e)
要...
protected void MyBtnHandler(Object sender, EventArgs e)