• DataList Learning——Delete A Item


    从DataList控件中删除一条记录

    今天把DataList控件的一些用法从MSDN中学习了一点,第一感觉就是,原来对控件我还有好多东西要学。

    在MSDN中有一个示例是说“如何:允许用户删除 DataList Web 服务器控件中的项”,其具体的地址为:ms-help://MS.MSDNQTR.v90.chs/dv_vwdcon/html/44c76175-34b4-4dec-95d7-f9f6fd1fe00d.htm

    可以将这个地址直接在MSDN中输入,然后就得到了这个页面了。

    好,下面言归正传。

    删除DataList控件中的项就我目前知道的来说,有两种,第一种就是按照MSDN中所说的,利用数据源控件来做。具体如何我就不说了,MSDN中现成的。

    第二种是利用SQL语句来做的。因为我认为,做项目不可能全用数据源控件,现在不是讲究分层开发么。

    首先是我的页面

    image

    这个是我的DataList控件。里面有一个Label一个Button。

    我在source中绑定了Label的数据字段:

    1. <asp:DataList ID="DataList" runat="server"
    2.     onselectedindexchanged="DataList_SelectedIndexChanged" DataKeyField="ó?户§±ào?"
    3.     ondeletecommand="DataList_DeleteCommand">
    4.     <ItemTemplate>
    5.         <asp:Label ID="Label_Item" runat="server"><%#Eval("ó?户§±ào?") %></asp:Label>
    6.         <br />
    7.         <asp:Button ID="Button_ItemDelete" runat="server" CommandName="delete"
    8.             Text="é?3y′?ì?记?录?" Width="156px" />
    9.     </ItemTemplate>
    10. </asp:DataList>

    注意,由于我用的是VS2010,所以中文利用插件复制到这里的都是乱码,见谅。

    然后是我给DataList控件绑定数据源的一个函数

    乱码的地方为中文,请自行替换
    1. void bind()
    2. {
    3.     string strConn = @"Data Source=CONGJUNFENG-PC\SQLEXPRESS;Initial Catalog=控?件têμ验é;Integrated Security=True;Pooling=False";
    4.     string strCmd = "select * from ó?户§±í";
    5.     SqlConnection conn = new SqlConnection(strConn);
    6.     SqlCommand cmd;
    7.     cmd = conn.CreateCommand();
    8.     cmd.CommandText = strCmd;
    9.     SqlDataAdapter da = new SqlDataAdapter(cmd);
    10.     DataSet ds = new DataSet();
    11.     conn.Open();
    12.     da.Fill(ds,"ó?户§±í");
    13.  
    14.     DataList.DataSource = ds.Tables["ó?户§±í"].DefaultView;
    15.     DataList.DataBind();
    16.     DataList.DataKeyField = "ó?户§±ào?";
    17.  
    18.     Button b;
    19.     b = (Button)DataList.FindControl("Button_ItemDelete");
    20.  
    21.     conn.Close();
    22. }

    再然后呢,就是删除的事件了

    乱码的地方为中文,请自行替换
    1. protected void DataList_DeleteCommand(object source, DataListCommandEventArgs e)
    2. {
    3.     int id = (int)DataList.DataKeys[e.Item.ItemIndex]+1;
    4.  
    5.     string strConn = @"Data Source=CONGJUNFENG-PC\SQLEXPRESS;Initial Catalog=控?件têμ验é;Integrated Security=True;Pooling=False";
    6.  
    7.     SqlConnection conn = new SqlConnection(strConn);
    8.     SqlCommand cmd;
    9.     cmd = conn.CreateCommand();
    10.  
    11.     conn.Open();
    12.  
    13.     cmd.CommandText = "delete from ó?户§±í where ó?户§±ào?="+(id-1);
    14.     cmd.ExecuteNonQuery();
    15.  
    16.     bind();
    17.     conn.Close();        
    18. }

    在这里有一个小点,如果看了MSDN的话应该不会出错,而如果没有看的话,就很可能会出错,那就是将按钮的CommandName属性设置为delete,定义的是DataList的DeleteCommand事件。这是因为只有在单机按钮后,按钮传出一个delete事件引起DataList的DeleteCommand事件。这里我曾经尝试了在绑定数据源的函数中给按钮设置,但是出错了(囧~~),所以我也就没有再继续尝试了,直接就在按钮的属性面板里面改了。

  • 相关阅读:
    IIS URL Rewrite redirect from one Domain to another
    20155236 《信息安全概论》实验二(Windows系统口令破解)实验报告
    20155217 20155236 20155324 《信息安全系统设计基础》实验一 开发环境的熟悉
    20155236 2017-2018-1 《信息安全系统设计基础》第5周学习总结
    20155236 2017-2018-1 《信息安全系统设计基础》第4周学习总结
    20155236 2017-2018-1 《信息安全系统设计基础》第3周课程总结
    20155236 2017-2018-1 《信息安全系统设计基础》第2周课堂实践
    20155236 2017-2018-1 《信息安全系统设计基础》第1周学习总结
    20155236 2016-2017-2《Java程序设计》课程总结
    20155236 《Java程序设计》实验五(网络编程与安全)实验报告
  • 原文地址:https://www.cnblogs.com/skyler/p/1718865.html
Copyright © 2020-2023  润新知