日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在DataList控件中删除数据记录

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在DataList控件中删除数据记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一)在DataList控件中刪除記錄的設計要點

DataList控件中刪除數據記錄的設計相對簡單一點。該功能設計的重點在于當用戶單擊【刪除】按鈕時,程序如何判斷要刪除的是哪一行。使DataList控件具有刪除記錄功能的設計要點如下:

●????必須創建ItemTemplate普通項模板,在這個模板內加入一些控件顯示數據源的信息,讓數據管理者快速瀏覽記錄以確定需要刪除哪一條記錄。還需要加入一個“刪除”按鈕到這個模板中,以便能夠啟動刪除功能。

●?????將DataList控件的DataKeyField屬性設置到數據表的主鍵字段,以便讓程序知道刪除行的主鍵,正確地刪除對應行。

(二)實現DataList控件中刪除記錄

在這個例子中,使用一個DataList控件,將數據庫MMIS的數據表employeeInfo的信息顯示在ItemTemplate普通項模板中,加入一個“刪除”按鈕到ItemTemplate中啟動刪除功能。

頁面的HTML標記

<form id="Form1" method="post" runat="server">

?????<asp:DataList id="DataList1" runat="server"??DataKeyField="編號">

?????????<HeaderTemplate>刪除員工記錄</HeaderTemplate>

?????????<ItemTemplate>

??????????????<asp:Button id="Button1" runat="server"

Text="刪除" CommandName="delete">

</asp:Button>&nbsp;編號:

??????????????<asp:Label id=Label1 runat="server"

?Text='<%# DataBinder.Eval(Container.DataItem,"編號") %>'>

??????????????</asp:Label>姓名:

??????????????<asp:Label id=Label2 runat="server"

?Text='<%# DataBinder.Eval(Container.DataItem,"姓名") %>'>

??????????????</asp:Label>性別:

??????????????<asp:Label id=Label3 runat="server"

?Text='<%# DataBinder.Eval(Container.DataItem,"性別") %>'>

??????????????</asp:Label>部門:

??????????????<asp:Label id=Label4 runat="server"

?Text='<%# DataBinder.Eval(Container.DataItem,"部門") %>'>

??????????????</asp:Label>家庭住址:

??????????????<asp:Label id=Label5 runat="server"

?Text='<%# DataBinder.Eval(Container.DataItem,"家庭住址") %>'>

??????????????</asp:Label>

?????????</ItemTemplate>

?????</asp:DataList></FONT>

</form>

?后臺代碼

編寫自定義方法MyDataBind連接數據庫、填充所有行到數據集并綁定到控件DataList1上。

private void MyDataBind()

{

?????string?connectionString="workstation id=localhost;"+

?????????"initial catalog=MMIS;user id=sa; pwd=";

?????SqlConnection myConnection=new?SqlConnection(connectionString);

?????SqlCommand myCommand=myConnection.CreateCommand();

?????myCommand.CommandText="select * from employeeInfo";

?????SqlDataAdapter myDataAdapter=new?SqlDataAdapter();

?????myDataAdapter.SelectCommand=myCommand;

?????DataSet mySet=new?DataSet();

?????//填充數據集??????????

?????myDataAdapter.Fill(mySet,"employeeInfo");

?????//數據綁定到控件DataList1

?????DataList1.DataSource=mySet.Tables["employeeInfo"].DefaultView;

?????DataList1.DataBind();

}

網頁加載時綁定數據。

private?void?Page_Load(object?sender, System.EventArgs e)

{

?????if(!IsPostBack)

?????{

?????????//調用自定義函數綁定數據

?????????MyDataBind();

?????}

}

為“刪除”按鈕的單擊編寫程序代碼。因為它為子控件,其CommandName屬性為“delete”,所以程序代碼要寫在容器控件的反升事件DataList1_DeleteCommand中。

下段程序第一行是最關鍵的行,其作用是為了取得被單擊的“刪除”按鈕所在的行的主鍵字段,以便知道要刪除數據庫中的哪一行。在DataList控件的HTML標記中必須要有DataKeyField="主鍵字段"屬性才能使下段程序的第一行有效。本例DataList的標記是:

?<asp:DataList id="DataList1" runat="server"??DataKeyField="編號">

?

private?void?DataList1_DeleteCommand(object?source, System.Web.UI.WebControls.DataListCommandEventArgs e)

{

?????//取當前行(就是按下"刪除"按鈕的那一行)的主鍵文本

?????string?No=DataList1.DataKeys[e.Item.ItemIndex].ToString();

?????string?connectionString="workstation id=localhost;"+

?????????"initial catalog=MMIS;user id=sa; pwd=";

?????SqlConnection myConnection=new?SqlConnection(connectionString);

?????SqlCommand myCommand=myConnection.CreateCommand();

?????//構建刪除命令

?????myCommand.CommandText="delete from employeeInfo where 編號='"+No+"'";

?????myConnection.Open();

?????//執行刪除

?????myCommand.ExecuteNonQuery();

?????myConnection.Close();

?????MyDataBind();

}

為了慎重起見,在刪除記錄前需要詢問用戶,讓其確認是否真的需要刪除。使用“刪除”按鈕的Attributes.Add方法添加腳本可以做到這一點,但這段代碼不能寫在Page_Load中,因為“刪除”按鈕被加入到了DataList1控件中,成為了DataList1控件的一個子控件,在Page_Load中訪問不到這個按鈕控件。幸好,可以在DataList1控件的ItemCreated事件中實現這個要求,該事件在DataList1控件創建項時發生。

private?void?DataList1_ItemCreated(object?sender,

System.Web.UI.WebControls.DataListItemEventArgs e)

{

?????//判斷若是DataList1中的普通項、交替項或者編輯項

?????if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==

ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)

?????{

?????????//將子控件Button1轉換為ButtonDel

?????????Button ButtonDel=(Button)e.Item.FindControl("Button1");

?????????//為"刪除"按鈕添加屬性,以便單擊它時彈出確認框

?????????ButtonDel.Attributes.Add("onclick","return confirm('確實要刪除此行嗎?');");

?????}

}

程序運行結果如圖。

?

轉載于:https://www.cnblogs.com/dotnetfangjun/archive/2012/03/30/2425202.html

總結

以上是生活随笔為你收集整理的在DataList控件中删除数据记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。