C# 在服务器上单击按钮不工作
我有一个html按钮,我希望有一个服务器端的点击事件,但当按钮被点击,页面进行回发时,它不会触发。该按钮位于呈现信息表的C# 在服务器上单击按钮不工作,c#,asp.net,C#,Asp.net,我有一个html按钮,我希望有一个服务器端的点击事件,但当按钮被点击,页面进行回发时,它不会触发。该按钮位于呈现信息表的项目模板中 aspx 我猜想它不会像这样工作,因为由放置在项模板中的嵌套控件引发的事件应该由ListView的ItemCommand事件来处理 要使其工作,您应该设置按钮的CommandName和CommandArgument,并处理listview的ItemCommand中的特定值 但是,如果我没有记错的话,HtmlInputButton没有CommandName和Comma
项目模板中
aspx
我猜想它不会像这样工作,因为由放置在项模板中的嵌套控件引发的事件应该由ListView的
ItemCommand
事件来处理
要使其工作,您应该设置按钮的CommandName
和CommandArgument
,并处理listview的ItemCommand
中的特定值
但是,如果我没有记错的话,HtmlInputButton
没有CommandName
和CommandArgument
属性。相反,请使用asp:Button
<asp:Button id="delete" runat="server" CommandName="something" CommandArgument="somethingelse" />
请注意,CommandArgument
通常绑定到一个特定于项的值(可能是id),以便在服务器端处理程序中您可以准确地识别单击的按钮:
<asp:Button id="delete" runat="server" CommandName="something" CommandArgument="<%# Eval( "id" ) %>" />
protected void usersListView_ItemCommand( object sender, ListViewCommandEventArgs e )
{
switch ( e.CommandName ) {
case "something" :
// this is where you handle the button click
var itemid = e.CommandArgument;
}
}
受保护的void usersListView_ItemCommand(对象发送方,ListViewCommandEventArgs e)
{
开关(e.CommandName){
案例“某物”:
//这是处理按钮单击的位置
var itemid=e.CommandArgument;
}
}
是页面声明中的AutoEventWireup=“true”
吗?这太棒了,谢谢Wiktor。但我遇到了ItemCommand事件处理程序未启动的问题。我设置了ListViewOnItemCommand=“usersListView\u ItemCommand”
,但什么都没有发生,当我单击删除按钮时,它根本没有击中处理程序。
<asp:Button id="delete" runat="server" CommandName="something" CommandArgument="somethingelse" />
protected void usersListView_ItemCommand( object sender, ListViewCommandEventArgs e )
{
switch ( e.CommandName ) {
case "something" :
// this is where you handle the button click
}
}
<asp:Button id="delete" runat="server" CommandName="something" CommandArgument="<%# Eval( "id" ) %>" />
protected void usersListView_ItemCommand( object sender, ListViewCommandEventArgs e )
{
switch ( e.CommandName ) {
case "something" :
// this is where you handle the button click
var itemid = e.CommandArgument;
}
}