3.5.2 CommandName属性
可以让窗体上的多个按钮来处理一个事件。我们可以标记按钮,使代码能根据窗体上单击的按钮进行逻辑判断。必须按照程序清单3-6给出的方式构建Button控件,这样才能利用多个按钮处理一个事件。
程序清单3-6 构建多个Button控件来处理一个函数
<asp:Button ID="Button1" runat="server" Text="Button 1"
OnCommand="Button_Command" CommandName="DoSomething1" />
<asp:Button ID="Button2" runat="server" Text="Button 2"
OnCommand="Button_Command" CommandName="DoSomething2" />
下面查看Button控件的这两个实例,需要注意几个地方。首先要注意的是哪个元素不存在,即具有OnClick事件的属性。相反,这里使用的是OnCommand事件,它指向Button_Command事件。这两个Button控件处理同一个事件。事件应该如何确定单击哪个按钮呢?可以通过CommandName属性的值来确定这一点。在这个例子中,它们拥有不同的值-- DoSomething1和DoSomething2。
下一步是创建这两个按钮要处理的Button_Command事件,方法是输入一个事件,或者在Visual Studio的代码视图中,从Button控件的可用事件下拉列表中选择Command事件。无论采用什么方法,都会得到如程序清单3-7所示的事件。
程序清单3-7 Button_Command事件
VB
Protected Sub Button_Command(ByVal sender As Object,
ByVal e As System.Web.UI.WebControls.CommandEventArgs)
Select Case e.CommandName
Case "DoSomething1"
Response.Write("Button 1 was selected")
Case "DoSomething2"
Response.Write("Button 2 was selected")
End Select
End Sub
C#
protected void Button_Command(Object sender,
System.Web.UI.WebControls.CommandEventArgs e)
{
switch (e.CommandName)
{
case("DoSomething1"):
Response.Write("Button 1 was selected");
break;
case("DoSomething2"):
Response.Write("Button 2 was selected");
break;
}
}
注意,这个方法使用的是System.Web.UI.WebControls.CommandEventArgs,而不是常用的System. EventArgs,以便把Select Case(switch)语句中使用的成员CommandName作为e.CommandName来访问。使用这个对象,可以检查窗体上被单击按钮使用的Command Name属性值,并根据该值执行特定的操作。
除了CommandName属性中定义的内容之外,还可以在Command事件中添加要传入的参数。为此,可以使用Button控件的CommandArgument属性。给属性添加值可以更精细地定义需要的项。在服务器端代码中使用CommandEventArgs对象中的e.CommandArgument,就可以获得这个值。
相关推荐
`CommandName`属性主要用于指定一个命令,这个命令通常是一个`ICommand`接口的实例,它定义了命令的行为,包括是否可以执行(CanExecute)以及执行命令的操作(Execute)。在WPF中,`ICommand`可以通过` ...
CommandName - 命令按钮的CommandName属性 ConfirmMessage - 弹出的确认框所显示的文字 4、每行复选框的全选与取消全选 在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的...
3. **定义更新和取消按钮**:同样在`EditItemTemplate`中,设置CommandName属性分别为"Update"和"Cancel",分别用于提交更改和取消编辑。 4. **处理事件**:监听`RowEditing`、`RowUpdating`和`RowCancelingEdit`...
1. 在GridView的列模板中添加一个LinkButton,设置其CommandName属性为"Delete",CommandArgument属性为DataKeys[index].Value,这里的index是当前行的索引,通常在BoundField或TemplateField中可以获取。...
4. CommandName和CommandArgument:用于区分不同按钮并传递额外信息。 5. ImageButton:结合图像的按钮,支持 AlternateText、ImageUrl 和 Click 事件。 TextBox控件用于输入文本,其重要属性包括: 1. Text:当前...
1. **检查 `CommandName`:** 使用事件参数的 `CommandName` 属性来确定触发事件的按钮的功能。 ```csharp protected void gvItems_RowCommand(object sender, GridViewCommandEventArgs e) { if (e....
例如,可以通过CommandName属性区分多个Button控件,以便根据用户点击的不同按钮执行不同操作。 3. LinkButton控件: LinkButton控件类似于HTML的超链接,点击后触发Click事件,通常用于页面导航。同样,它也支持...
ValidationGroup属性用于验证,PostBackURL定义点击按钮后的跳转URL,CommandArgument和CommandName属性用于命令参数和关联的命令。Click事件在用户点击按钮时触发。 服务器控件的强大在于它们提供了丰富的功能,如...
例如,在示例代码中,我们看到一个`Button`控件,它的`CommandName`属性被设置为`'("GoodFriendid")%>'`,这样在按钮点击时,就会携带当前行的数据项ID。 ```html ... 删除" CommandName='("GoodFriendid")%...
为了让DataList有编辑和删除的功能,我们在ItemTemplate里添加了一些button,当点击时,引起postback,并根据button的CommandName属性激发相关的事件。例如,添加一个CommandName为“Edit”的button,在postback时会...
在GridView的列模板中,为“删除”按钮添加一个TemplateField,并将CommandName属性设置为"Delete"。例如: ```asp.net <!-- 其他列 --> <asp:LinkButton ID="lnkDelete" runat="server" CommandName=...
LinkButton控件和ImageButton控件可以共享一个处理函数,CommandArgument属性可以传递命令参数,CommandName属性可以指定命令名称。 Panel控件可以实现高级设置的渲染形式,GroupingText属性可以指定分组标题。 ...
2. CommandField控件:用于添加“编辑”、“更新”和“删除”按钮,通过CommandName属性区分不同操作。 3. DataKeyNames属性:设置用于标识每行数据的唯一键值,用于更新和删除操作。 六、自定义样式和模板 1.....
这里,我们创建了一个名为`ToolBar1`的工具栏,并添加了三个按钮,每个按钮都有不同的`CommandName`属性,可以用于区分按钮事件。 2. 绑定事件处理程序: ASP.NET控件可以通过`OnClick`事件或`Command`事件与后端...
2. **Button控件**:提供两种类型,submit按钮用于提交表单至服务器处理,command按钮则通过CommandName属性区分不同按钮并触发相应事件。 3. **Image控件**:显示图像,可以通过ImageUrl属性设置图片源,...
3、根据按钮的CommandName设置其客户端属性 使用方法(设置ClientButtons集合属性): BoundCommandName - 需要绑定的CommandName AttributeKey - 属性的名称 AttributeValue - 属性的值(两个占位符:{0} - ...
1. 在Repeater的ItemTemplate中添加按钮或其他可点击元素,设置CommandName属性。 2. 在代码-behind中,捕获ItemCommand事件,检查e.CommandName以确定触发的操作类型。 3. 根据操作类型执行相应的业务逻辑,例如...
1. LinkButton 控件在 DataList 中的使用:在DataList中放置LinkButton,当CommandName属性设置为"Edit"时,可以触发DataList的EditCommand命令,从而启动编辑操作。 2. Server对象的MapPath方法:Server对象的...