Button控件的onclick、oncommand、commandname、CommandArgument的区别
来源:互联网 发布:mac怎么安装win7系统 编辑:程序博客网 时间:2024/05/18 01:26
.Button控件
Button控件在执行后被解析为<input type="submit">代码,而Button控件的优点就在于提交程序的同时能够传递参数,传递参数是靠CommandName与CommandArgument属性来完成的。
举两个Button控件的例子。
<% @ Page Language="C#" %>
<Script Language="C#" Runat="Server">
public void Button_Click(Object sender,EventArgs e)
{
string argName = ((Button)sender).CommandName;
//sender为一个对象,故CommandArgument为string
string argArg = ((Button)sender).CommandArgument;
Label1.Text="您选中的动作为:<font color=red>"+argName+"</font>,动作目标是:<font color=red>"+argArg+"</font>";
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<b>Button控件演示</b>
<hr>
<form runat="server">
<asp:Button CommandName="踢" CommandArgument="足球" Text="动作1" runat="server" /><br>
<asp:Button CommandName="打" CommandArgument="篮球" Text="动作2" runat="server" /><br>
<hr>
<asp:Label runat="server" />
</form>
</body>
</html>
////////////////////////////////////
<% @ Page Language="C#" %>
<Script Language="C#" Runat="Server">
public void Button_Click(Object sender,CommandEventArgs e)
{
string argName = e.CommandName;
//CommandEventArgsr为一个类,故CommandArgument.ToString();
string argArg = e.CommandArgument.ToString();
Label1.Text="您选中的动作为:<font color=red>"+argName+"</font>,动作目标是:<font color=red>"+argArg+"</font>";
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<b>Button控件演示</b>
<hr>
<form runat="server">
<asp:Button CommandName="踢" CommandArgument="足球" Text="动作1" runat="server" /><br>
<asp:Button CommandName="打" CommandArgument="篮球" Text="动作2" runat="server" /><br>
<hr>
<asp:Label runat="server" />
</form>
</body>
</html>
分析:1.两个程序用不同的方法完成相同的功能和效果。
2.类CommandEventArgs有两个公共属性,CommandName(用来获取命令的名称)和CommandArgument(用来获取命令的参数)。二者相互关联。
3.两个程序分别用OnClick与OnCommand激发事件,区别在于OnCommand是带值传递的。
4.所有Button类的Web控件(如ImageButton,LinkButton)均含有CommandName和CommandArgument这两个属性。
问题:上文中两个程序采用的参数CommandEventArgs,EventArgs有什么区别?为什么在第一个程序中使用EventArgs,而不能使用CommandEventArgs(已经验证,出现“Button_Click”的重载均与委托“System.EventHandler”不匹配)?
例子:http://hi.baidu.com/fuhengyu/blog/item/b37e14fb3e6055264e4aea65.html
解决:在网上查资料得到的结果:
这类问题出现的原因就是在控件的一些事件里面调用了函数,而这些函数的参数与该事件所要用到的参数类型不一致。在MSDN中搜索OnPageIndexChanging、OnPageIndexChanged等关键字就可以得到:
C#
protected virtual void OnPageIndexChanged (EventArgs e)
C#
protected virtual void OnPageIndexChanging (DetailsViewPageEventArgs e)
C#
protected virtual void OnRowDeleting (GridViewDeleteEventArgs e)
C#
protected virtual void OnRowDeleted ( DataRowChangeEventArgs e)
这样,在何种事件中使用什么样的参数类型就一目了然了。还有后面的OnRowDeleted、OnRowDeleting也是同样的道理。
相应事件:
public void MyList_Page(object sender, GridViewPageEventArgs e)
public void MyDataGrid_Delete(Object sender, GridViewDeleteEventArgs e)
资料来源:http://blog.csdn.net/itzhiren/archive/2007/05/24/1623822.aspx
- Button控件的onclick、oncommand、commandname、CommandArgument的区别
- Button控件的onclick、oncommand、commandname、CommandArgument的区别
- Button控件的onclick、oncommand、commandname、CommandArgument的区别
- Button控件的onclick、oncommand、commandname、CommandArgument的区别_新起点(Net && C#)
- CommandName 和 CommandArgument的区别
- Button控件的CommandName属性和OnCommand事件的使用以及对数据的绑定
- OnClick和OnCommand的区别
- onclick与onCommand的区别
- ASP.NET控件使用——Button中关于CommandName 和 CommandArgument 的理解?????
- button控件具体用法(CommandName, CommandArgument)
- oncommand与CommandArgument的联系
- asp.net按钮 button的onclick事件 与oncommand 事件的区别
- C#中Button的oncommand事件和onclick事件的区别
- 控件整理之Button按纽组CommandName和CommandArgument
- asp.net中OnClick与OnCommand的区别及用法
- OnUpdateCmdUI 与 OnCommand 的区别
- [学习笔记][ASP.NET2.0][点击asp:Button出现两次提交数据的问题][解决:去掉OnClick或者OnCommand属性]
- WebControl 之Button CommandName的使用
- VC++动态链接库(DLL)编程深入浅出(一)
- BCP简介
- Java入门:Java语言中Timer类的简洁用法
- linux查看内存和cpu进程占用量
- 部署承载于 Internet 信息服务中的 WCF 服务
- Button控件的onclick、oncommand、commandname、CommandArgument的区别
- IC卡原理知识
- 进阶:Vector、ArrayList和List的异同
- 公交上的爆笑段子
- 数据库相关--Hibernate的事务和并发
- 妹妹的高考
- GridView里的Button
- web developer tips (28):CSS class 也支持“转到定义”
- C#在开发和使用中的23个技巧.doc