DataList绑定DeleteCommand删除事件 点击删除按钮 所有的信息都没了 但是也没删除
将后台的 if (!Page.IsPostBack) 删除后 DataList的删除功能正常 反之则出现点击删除 列表成空白的 没有实现删除功能 怎么回事 如何解决?

解决方案 »

  1.   

    在DeleteCommand的里面,删除操作完成后,重新绑定一下。
      

  2.   

    绑定了 跟了一下 他压根就没进 
     protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            int userid = int.Parse(DataList1.DataKeys[e.Item.ItemIndex].ToString());
            try
            {
                DAL.Common.Delete<Entity.Snews>(userid);
                Bind();
            }
            catch (Exception ex)
            {
            }
        }
    这方法
      

  3.   

    加上if (!Page.IsPostBack)点击删除按钮的时候根本就不执行
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    这方法
    如果去掉判定 就一点问题都没有 在线等 知道的帮下 立马结贴
      

  4.   

    没道理不执行的,是不是没有绑定成功?(包括绑定删除按钮事件和绑定DATALIST)?
      

  5.   

    源码  using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;public partial class Sp_Main_New : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Bind();
            }
        }    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            int userid = int.Parse(DataList1.DataKeys[e.Item.ItemIndex].ToString());
            try
            {
                DAL.Common.Delete<Entity.Snews>(userid);
                Bind();
            }
            catch (Exception ex)
            {
            }
        }    private int id
        {
            get
            {
                if (Request.QueryString["id"] != null && Request.QueryString["id"].ToString() != "")
                {
                    try
                    {
                        return int.Parse(Request.QueryString["id"].ToString());
                    }
                    catch
                    {
                        return 0;
                    }
                }
                else
                    return 0;
            }
        }
        public string returnNews(string con)
        {
            if (!String.IsNullOrEmpty(con))
            {
                if (con.Length >= 30)
                {
                    return con.Substring(0, 30) + "..";
                }
                else
                {
                    return con;
                }
            }
            else
            {
                return String.Empty;
            }
        }
        protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            Bind();
        }    public void Bind()
        {
            //获取cookie中的id和用户角色类型id
            int uid = 1;//用户id
            int type = 2;//角色id
            if (uid == null)
            {
                Response.Redirect("../../Login.aspx");
            }
            else
            {
                if (type == 2)
                {
                    Entity.Gusers gg = DAL.Common.Get<Entity.Gusers>("Uid=" + uid + "");
                    Entity.Sp ss = DAL.Common.Get<Entity.Sp>("Gid=" + gg.id + "");
                    string sql = "Sid=" + ss.id + "";
                    AspNetPager1.RecordCount = DAL.FF.GetNews3(sql);
                    Entity.Snews[] Model = DAL.Common.Select<Entity.Snews>(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, sql, "Ntime desc");
                    if (Model.Length == 0 && AspNetPager1.CurrentPageIndex > 1)
                    {
                        AspNetPager1.CurrentPageIndex--;
                        Bind();
                        return;
                    }
                    DataList1.DataSource = Model;
                    DataList1.DataBind();
                    if (id > 0)
                    {
                        Entity.Snews sn = DAL.Common.Get<Entity.Snews>(id);
                        tit.Text = sn.Tit;
                        wysiwyg.Value = sn.Con;
                    }            }
                else
                {
                    Response.Redirect("../../Default.aspx");
                }
            }
        }}前台  <asp:DataList ID="DataList1"  runat="server" DataKeyField="ID" Width="700px" OnDeleteCommand="DataList1_DeleteCommand">
                    <ItemTemplate>
                        <div class="ne_g1">
                            <div class="mm2 g1">
                                 <a href="New.aspx?id=<%# Eval("id") %>">
                                    <%# returnNews(Eval("Tit").ToString())%></a>
                            </div>
                            <div class="g2">
                                <%# Eval("Ntime")%>
                            </div>
                            <div class="mm3 g3">
                                 <a href="New.aspx?id=<%# Eval("id") %>">修改</a>&nbsp;/&nbsp;<asp:LinkButton ID="lbtnDelete" CommandName="Delete"
                                    OnClientClick="return confirm('确定要删除选中的项目吗?一旦删除将不能恢复!');" runat="server">删除</asp:LinkButton>
                            </div>
                        </div>
                    </ItemTemplate>
                    <AlternatingItemTemplate>
                        <div class="ne_g1">
                            <div class="mm2 g4">
                                <a href="New.aspx?id=<%# Eval("id") %>">
                                    <%# returnNews(Eval("Tit").ToString())%></a>
                            </div>
                            <div class="g5">
                                <%# Eval("Ntime")%>
                            </div>
                            <div class="mm3 g6">
                                 <a href="New.aspx?id=<%# Eval("id") %>">修改</a>&nbsp;/&nbsp;<asp:LinkButton ID="lbtnDelete" CommandName="Delete"
                                    OnClientClick="return confirm('确定要删除选中的项目吗?一旦删除将不能恢复!');" runat="server">删除</asp:LinkButton>
                            </div>
                        </div>
                    </AlternatingItemTemplate>
                </asp:DataList>
      

  6.   

    把<AlternatingItemTemplate>
    这个去掉然后AspNetPager1_PageChanged 改成 PageChangeing
     protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
      {
      AspNetPager1.CurrentPageIndex = e.NewPageIndex;
      Bind();
      }
    这样试试
    参考http://blog.csdn.net/lee576/archive/2008/10/07/3029046.aspx
      

  7.   


    DataList视图状态 EnableViewState的属性是为True   就会这样
      

  8.   


    你看下 你前台的头文件是不是引用正确了 跟你项目的其他页面比较下
    <%@ Page Language="C#" AutoEventWireup="true" Codebehind="B_QuerySLMain.aspx.cs"
        Inherits="MARS.Base.B_SL_Main" StylesheetTheme="Default_Page" Theme="Default_Page" %>