<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.WebForm3" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm3</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 72px" runat="server"
BorderColor="#CC9966" BorderStyle="None" BackColor="White" CellPadding="4" GridLines="Both"
BorderWidth="1px" Height="254px">
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
<SelectedItemTemplate>
<FONT face="宋体"></FONT>
</SelectedItemTemplate>
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
<ItemTemplate>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR bgColor="#ffffff">
<td width="40">
<asp:Button id="Edit" runat="server" CommandName="Edit" Text="编辑" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "APTITUDE_SEQ") %>'>
</asp:Button></td>
<td width="40">
<asp:LinkButton id="Delete" BorderColor="#6600ff" runat="server" CommandName="Delete" Text="删除" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "APTITUDE_SEQ") %>'>
</asp:LinkButton>
</td>
</TR>
</TABLE>
</FONT>
</ItemTemplate>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
</asp:DataList>
<asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 32px" runat="server"
Width="296px">Label</asp:Label>
</form>
</body>
</HTML>
cs文件public class WebForm3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DataList DataList1;

private void Page_Load(object sender, System.EventArgs e)
{
DataList1.DataSource = Getdata();
DataList1.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.DataList1.EditCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_EditCommand);
this.DataList1.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataList1_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
Label1.Text = "DataList1_DeleteCommand" + e.CommandArgument.ToString();
} private DataTable Getdata()
{
DataTable table1 = new DataTable();
table1.Columns.Add(new DataColumn("APTITUDE_SEQ",System.Type.GetType("System.String")));
//
for(int i = 0;i < 10;i++)
{
DataRow row = table1.NewRow();
row["APTITUDE_SEQ"] = i.ToString(); table1.Rows.Add(row);
} return table1;
} private void DataList1_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
Label1.Text = "DataList1_EditCommand" + e.CommandArgument.ToString();
}
}发现 LinkButton的函数能正常执行到
但是Button关联的那个函数不能执行到
快疯了,是不是我的开发环境有问题啊各位看看怎么回事啊。求求各位了!

解决方案 »

  1.   

    我要实现的就是在datalist现实的每一行内有两个按钮,一个为删除,一个为编辑
    点删除执行删除函数,点编辑实现执行编辑函数。但是发现了一个奇怪的问题
    Button无法执行关联的事件处理函数
    LinkButton就可以。
    太奇怪了
      

  2.   

    你给在HTML中button多加一个onclick="Edit_Click()"然后在C#代码中硬写一个Edit_Click的方法,注意要定义成public,不然执行不到。例如这样:
    public void Edit_Click(object sender, System.EventArgs e)
    {
        代码
    }这样应该就可以执行了!
    服务器端控件放到datalist中,它原有的所有事件都不能正常使用的,如果想用只能自己手动添加!
      

  3.   

    绑定放到if(!IsPostBack)
    不要加什么this.DataList1.EditCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_EditCommand);
    了,直接在ItemCommand里面更具commandname判断
      

  4.   

    你的LinkButton的CommandName是datalist的delete事件,所以能执行到,而你的Button没有写事件,也没有用datalist的事件,所以你执行不到!你像我上面说的那样手动写一个事件应该就能执行到了,可以试一试。我经常用datalist的,每次写里面控件的事件都是这样加,都好使的。