这样设置datalist是否可以实现删除 谢谢指点
不设置这个事件是否可以实现 删除和弹出对话框确认操作
private void datalist_programe_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{

}
<asp:DataList Height="87" id="datalist_programe" runat="server" Width="500" style="Z-INDEX: 101; LEFT: 72px; POSITION: absolute; TOP: 64px; width: 500;" DataKeyField="program_id" OnItemCommand="datalist_programe_ItemCommand">

<HeaderTemplate>
    <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="500" border="1">
      <TR> 
        <TD width="80"><div align="center"><font size="2"><strong>节目名称</strong></font></div></TD>
        <TD width="80"><div align="center"><font size="2"><strong>发布时间</strong></font></div></TD>
        <TD width="80"><div align="center"><font size="2"><strong>节目类型</strong></font></div></TD>
        <TD width="80"><div align="center"><font size="2"><strong>评论管理</strong></font></div></TD>
        <TD colspan="3" width="180"><div align="center"><font size="2"><strong>节目管理</strong></font></div></TD>
      </TR>
         </table>
      </HeaderTemplate>
      <ItemTemplate>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="500" border="1">
 <TR>
 <TD height="21" ><a href=view.aspx?id=<%# DataBinder.Eval(Container.DataItem, "program_id") %>><font size="2"><%# DataBinder.Eval(Container.DataItem, "p_title") %></font></a></TD>
 <TD  align=center><font size="2"><%# DataBinder.Eval(Container.DataItem, "p_public_time","{0:D}")%></font></TD>
 <TD align=center><font size="2"><%# DataBinder.Eval(Container.DataItem, "bc_name")%></font></TD>
 <TD  align=center><font size="2"><A href=clist.aspx?program_id=<%# DataBinder.Eval(Container.DataItem, "program_id") %>>评论<%# DataBinder.Eval(Container.DataItem, "p_comment_count")%>)</A></font></TD>
 <TD  align=center><a href=manpro.aspx?program_id=<%# DataBinder.Eval(Container.DataItem, "program_id") %>><font size="2">管理节目</font></a></TD>
 <TD  align=center>
 <asp:Button ID=btnDelete runat="server" CommandName="delete" Text="删除" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "program_id") %>'></asp:Button></TD>
</TR>   
       </table> 
    </ItemTemplate>
</asp:DataList>事件如下:
private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
 {
  Button btnDel = (Button)e.Item.FindControl("btnDelete");
  btnDel.Attributes.Add("onclick","return confirm('确定要删除[" + DataBinder.Eval(e.Item.DataItem,"p_title") + "]吗?')");                 
  e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#cccc00'");
  e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='white'");
 }
}
public void datalist_programe_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if(e.CommandName=="delete" )
  {
   datalist_programe.SelectedIndex = e.Item.ItemIndex;
   string str_delete="delete program_info  where program_id="+datalist_programe.DataKeys[e.Item.ItemIndex];
   SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"]);
   myConnection.Open();

   SqlCommand mysqlcommand =new SqlCommand(str_delete,myConnection);
   mysqlcommand.ExecuteNonQuery();
   myConnection.Close();
   select_programe_info();
}
}

解决方案 »

  1.   

    1.先用FindControl方法找到按钮的ID.
    2.
    this.BtnDel.Attributes.Add("onclick","return confirm('确定要删除吗?');");
      

  2.   

    对话框的功能 我已经实现
    如何出现确认 对话框之后就删除 
    不设置这个事件是否可以实现 删除
    private void datalist_programe_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {

    }
      

  3.   

    可以,当要在ITEMCOMMAND 中写DELETE的代码
      

  4.   

    不明白楼住的意思,
    是否是没有将 事件处理程序绑定到 事件上,
    如果你用的 codebehind 的话,检查一下 InitializeComponent()中是否有如下类似代码:
    this.DataList1.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_DeleteCommand);如果你希望在 ItemCommand事件中实现也可以:
    1.设置DataList 中的按钮的 ComandName="yourCmdName"
    2.DataList 中 ItemCommand  事件处理程序应该类似如下代码:
    private void DataList1_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
      if( e.CommandName = "yourCmdName" )
    {
    //你要执行的逻辑
    }
    }
    其实对于删除,更新,编辑等常用命令 DataGrid 和 DataList都提供了内置支持事件,不需要我们手动判断,只要在 双击 控件属性面把 中的 事件选项 对应栏 ,就可以直接进入后台编码实现你的业务逻辑,
    对于 ItemCommand 事件就是给我们提供快展的空间了GoodLuck!
      

  5.   

    设置删除对话框必须在ItemDataBound事件中执行代码
    当你设置一个模板列后,在里面放入一个按钮(如button)则
    private void dbGuestBook_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem) 
    {
    Button button = (Button) e.Item.FindControl("ibDelete");
    button.Attributes.Add ("onclick",
    "return confirm (\"确定要删除此项记录吗?\");");
    }
    }注意:ibDelete为控件 Button的ID