程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> DataList制作刪除功能以及它的幾個事件

DataList制作刪除功能以及它的幾個事件

編輯:.NET實例教程

先建立一個DataList控件

看看其中的三個事件 ItemCommand、ItemCreated、ItemDataBound

要做刪除事件主要是用ItemCommand,它會引發CommandEvent事件

ItemCreated的事件是在控件初始化加載時能加載些什麼,如果要注冊一些提示腳本和樣式等信息在這裡寫就可以

我曾經遇到過用SESSION判斷其中的按鈕是不是可用,就寫在這裡面了.

ItemDataBound是在數據綁定後激發,同樣可以配合著第一種事件做刪除等操作

第一步:在DataList裡加入DatakeyName屬性

             <ASP:DataList ID="DataList1" runat="server" DataKeyFIEld="RemarkID"Width="100%" >

             </ASP:DataList>

             這裡的RemarkID是從數據庫中綁定的主鍵的字段名

第二步:在DataList的模板中放入一個BUTTON,這裡用LINKBUTTON做,並加上commandname屬性

<ASP:DataList ID="DataList1" runat="server" DataKeyFIEld="RemarkID" Width="100%" >

          <ItemTemplate>

                   <asp:LinkButton ID="LinkButton2" commandname = "DRdel" runat="server">刪除</ASP:LinkButton>

          </ItemTemplate>

</ASP:DataList>

第三步:加上上面提到的事件

 <ASP:DataList ID="DataList1" runat="server" DataKeyFIEld="RemarkID" Width="100%"OnItemCommand="DataList1_ItemCommand" >

然後就是在事件中添加信息

 



   protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    ...{
        if (e.Item.ItemIndex != -1 && e.CommandName == "DRdel")//判斷索引和CommandName
        ...{
            int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());//獲取激發事件時的行的主鍵ID
            FCD_Remark fcd_Remark = new FCD_Remark();//這是自定義類
            if (fcd_Remark.Delete(id))//調用的刪除方法
            ...{
                Lb_message.Text = "刪除評論成功";
                B
indRemark();
            }
            else
            ...{
                Lb_message.Text = "刪除評論失敗";
            }
        }
    }

 

上面的自定義類各位完全可以自己換成自己的刪除方法

如果配合其他的事件還可以添加這樣的效果:

 



  protected void dlMessages_ItemCreated(object sender, DataListItemEventArgs e)
    ...{
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)     //判斷行和交替行
        ...{
            LinkButton lbtnDelete = (LinkButton)e.Item.FindControl("lbtnDelete");   //尋找到DataList中的LINKBUTTON按鈕
            if (lbtnDelete != null)
            ...{
                lbtnDelete.Attributes.Add("onclick", "Javascript:return confirm(''請注意:刪除留言後,該項留言若有有回復,回復也被刪除。您確認要刪除該項留言嗎?'');");

   //注冊刪除提示框
                lbtnDelete.CommandArgument = dlMessages.DataKeys[e.Item.ItemIndex].ToString();   //綁定主鍵
                lbtnDelete.CommandName = "DeleteLWord";   //綁定CommandName
            }
        }
    }

//下面的代碼類似於上面的  注釋就不寫了
    protected void dlMessages_ItemCommand(object source, DataListCommandEventArgs e)
    ...{
        if (e.Item.ItemIndex != -1 && e.CommandName == "DeleteLWord")
        ...{
            int LWordTabId = int.Parse(e.CommandArgument.ToString());
            if (new BLLLWordTab().Delete(LWordTabId))
            ...{
                tdMsg.InnerHtml = "<font color=''red''>刪除留言成功!</font>";
                ShowLWord(VIEwState["PlayerID"].ToString());
            }
            else

...{
                tdMsg.InnerHtml = "<font color=''red''>刪除留言失敗!</font>";
            }
        }
    }

 

需要注意的是,在DATALIST中定義的控件是不能直接在代碼窗體中找到的,必須用FindControl方法才能找到

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved