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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

给DataGrid添加确定删除的功能

發(fā)布時(shí)間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给DataGrid添加确定删除的功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給DataGrid添加確定刪除的功能
DataGrid的功能我想大家是知道的,我在實(shí)際的應(yīng)用中遇到如下的問(wèn)題,客戶要求在刪除之前做一次提示。類

似于windows。首先我們都知道DataGrid支持刪除的功能,我們可以向DataGrid里面添加刪除列就可以實(shí)現(xiàn),

下面我想用模板列來(lái)實(shí)現(xiàn)帶提示的刪除按鈕。我們用northwind的示例數(shù)據(jù)庫(kù)作為例子數(shù)據(jù)庫(kù)操縱Categories表。

DataGrid的Html頁(yè)的內(nèi)容如下:
<asp:DataGrid id="grdTest" style="Z-INDEX: 101; LEFT: 205px; POSITION: absolute; TOP: 134px"

runat="server">
????<Columns>
?????<asp:TemplateColumn>
??????<ItemTemplate>
???????<asp:Button id="btnDelete"

runat="server" Text="Button" CommandName="Delete"></asp:Button>
??????</ItemTemplate>
?????</asp:TemplateColumn>
????</Columns>
???</asp:DataGrid>
我們只添加了一個(gè)模板列,其他的列都是在運(yùn)行的時(shí)候自動(dòng)生成的。
可以看出這個(gè)模板列很像刪除列但是又不是刪除列,我們給一個(gè)普通的Button添加了一個(gè)CommandName

="Delete"的屬性。這是用來(lái)響應(yīng)DataGrid的ItemCommand事件的!在刪除列里面就是這樣的!

接下來(lái)就是后臺(tái)代碼了,代碼如下所示:
private DataSet ds = new DataSet();
private void Page_Load(object sender, System.EventArgs e)
??{
???// 在此處放置用戶代碼以初始化頁(yè)面
???if(!this.IsPostBack){
????string strConnection = ConfigurationSettings.AppSettings

["sa"].ToString();
????SqlConnection myConnection = new SqlConnection(strConnection);
????SqlDataAdapter myAdapter = new SqlDataAdapter("SELECT

CategoryID,CategoryName, Description?FROM Categories",myConnection);
????myAdapter.Fill(ds);
????this.grdTest.DataSource = ds.Tables[0].DefaultView;
????this.grdTest.DataKeyField = "CategoryID";
????this.grdTest.DataBind();
???}
??}

接下來(lái)我們給模板列里面的每一個(gè)按鈕都添加一個(gè)客戶端的onclick事件。我想大家都應(yīng)改知道Attributes屬

性吧!可以通過(guò)他向客戶端輸出客戶端控件的屬性比如:長(zhǎng)度、顏色等等。但是通常情況我們使用它添加客戶

端事件。知道javascript的朋友肯定知道confirm了!它會(huì)彈出一個(gè)確認(rèn)對(duì)話框如果確定才提交form否則就不

提交,所以使用這個(gè)也是很自然的了。
private void grdTest_ItemDataBound(object sender,

System.Web.UI.WebControls.DataGridItemEventArgs e) {
???switch(e.Item.ItemType){
????case ListItemType.Item:
????case ListItemType.AlternatingItem:
????case ListItemType.EditItem:{
?????Button btn = (Button)e.Item.FindControl("btnDelete");
?????btn.Attributes.Add("onclick",?"return confirm('你是否

確定刪除這條記錄');");
?????break;
????}
???}
??}
添加好這個(gè)事件里以后我們還需要添加如下的代碼才能完成我們的工作:
private void grdTest_ItemCommand(object source,

System.Web.UI.WebControls.DataGridCommandEventArgs e) {
???if(e.CommandName == "Delete"){
????this.DeleteRow(this.grdTest.DataKeys[e.Item.ItemIndex].ToString

());
???}
??}
上面的事件就是我們點(diǎn)擊DataGrid里面的控件的時(shí)候激發(fā)的事件,我們可以通過(guò)CommandName篩選出來(lái)我們想

要激發(fā)的方法DeleteRow(),一下就是這個(gè)方法的代碼:
private void DeleteRow(string i){
???string strConnection = ConfigurationSettings.AppSettings["sa"].ToString

();
???SqlConnection myConnection = new SqlConnection(strConnection);
???SqlCommand cmd = new SqlCommand("DELETE FROM Categories WHERE

(CategoryID = "+i+")",myConnection);
???myConnection.Open();
???cmd.ExecuteNonQuery();
???myConnection.Close();
??}
上面的函數(shù)接收一個(gè)參數(shù),此參數(shù)是當(dāng)前選中行的關(guān)鍵字。
有錯(cuò)誤的地方請(qǐng)多多指教。e_mail:wu_jian830@hotmail.com

總結(jié)

以上是生活随笔為你收集整理的给DataGrid添加确定删除的功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。