CommandEventArgs和 EventArgs有什么区别

本文介绍了EventArgs类作为事件数据基类的作用,及其子类CommandEventArgs在Button或ImageButton控件单击事件中如何提供数据。阐述了在.NET框架中如何通过CommandEventArgs传递额外的状态信息,并解释了为何在某些情况下选择使用OnCommand而非OnClick事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、EventArgs: 是包含事件数据的类的基类。 此类不包含事件数据,在事件引发时不向事件处理程序传递状态信息的事件会使用此类。如果事件处理程序需要状态信息,则应用程序必须从此类派生一个类来保存数据。 2、CommandEventArgs: 为 Command 事件提供数据。
  
当单击 Button 或 ImageButton 控件时,会引发 Command 事件。
 语法: public class CommandEventArgs : EventArgs EventArgs 是老子,CommandEventArgs 是儿子
所以如果想在点击按钮传值的话就不能是OnClick事件了,而是OnCommand事件了
 
 
前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="listview增删改查._default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> .divItem { padding: 5px; } .divBtns { width:130px; } .divInfo { width:350px; padding:0px 10px 0px 10px; border-left:1px solid #dadada; border-right:1px solid #dadada; } .divInfo2 { width:200px; } .divBtns, .divInfo, .divInfo2 { float:left; } .clr { clear:both; } </style> </head> <body> <form id="form1" runat="server"> <div> <asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource2" ItemPlaceholderID="itemholder"> <LayoutTemplate> <div runat="server" id="itemholder"></div> </LayoutTemplate> <ItemTemplate> <div id="divItem"> <div class="divBtns"> <asp:Button ID="btn_edit" runat="server" Text="编辑" CommandName="edit" /><br/> <asp:Button ID="btn_delete" runat="server" Text="删除" CommandName="delete" /> <asp:Button ID="btn_delmak" runat="server" Text="标记删除" CommandName="lvcmd" CommandArgument='<%#Eval("se_id") %>' onCommand="mycmd" /> </div> <div class="divInfo"> <h2><%#Eval("se_name") %></h2> <p><%#Eval("se_memo") %></p> </div> <div class="divInfo2"> <asp:CheckBox ID="chk_enable" runat="server" Checked='<%#Eval("se_enable") %>' Enabled="false" Text="有效性" /><br/> <p>排序:<%#Eval("se_order") %></p> </div> <div class="clr"></div> </div> </ItemTemplate> </asp:ListView> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString9 %>" DeleteCommand="DELETE FROM [T_SERIES] WHERE [se_id] = ?" InsertCommand="INSERT INTO [T_SERIES] ([se_id], [se_name], [se_memo], [se_order], [se_enable], [se_delete]) VALUES (?, ?, ?, ?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString9.ProviderName %>" SelectCommand="SELECT * FROM [T_SERIES] WHERE SE_DELETE=FALSE" UpdateCommand="UPDATE [T_SERIES] SET [se_name] = ?, [se_memo] = ?, [se_order] = ?, [se_enable] = ?, [se_delete] = ? WHERE [se_id] = ?"> <DeleteParameters> <asp:Parameter Name="se_id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="se_id" Type="Int32" /> <asp:Parameter Name="se_name" Type="String" /> <asp:Parameter Name="se_memo" Type="String" /> <asp:Parameter Name="se_order" Type="Int32" /> <asp:Parameter Name="se_enable" Type="Boolean" /> <asp:Parameter Name="se_delete" Type="Boolean" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="se_name" Type="String" /> <asp:Parameter Name="se_memo" Type="String" /> <asp:Parameter Name="se_order" Type="Int32" /> <asp:Parameter Name="se_enable" Type="Boolean" /> <asp:Parameter Name="se_delete" Type="Boolean" /> <asp:Parameter Name="se_id" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource> </div> </form> </body> </html> 后端代码: using System; using System.Collections.Generic; using System.Data.OleDb; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace listview增删改查 { public partial class _default : System.Web.UI.Page { string str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="; string str_sourcefile = "mdb\\TB-HLINKS.accdb"; OleDbConnection cnn; OleDbCommand cmd; OleDbDataReader datar; string str_sql; protected void Page_Load(object sender, EventArgs e) { } protected void mycmd(object sender, CommandEventArgs e) { string str_conn = str_cnn + MapPath(str_sourcefile); cnn = new OleDbConnection(str_conn); cnn.Open(); str_sql = "update T_SERIES set se_delete =true where " + "se_id =" + e.CommandArgument.ToString(); cmd = new OleDbCommand(str_sql, cnn); cmd.ExecuteNonQuery(); cnn.Close(); ListView1.DataBind(); } } } 不能更改数据,什么原因呢?
最新发布
08-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值