主頁(yè) > 知識(shí)庫(kù) > ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇

ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇

熱門(mén)標(biāo)簽:塔城代理外呼系統(tǒng) 代理接電話機(jī)器人如何取消 地圖標(biāo)注專業(yè)團(tuán)隊(duì) 地圖定位圖標(biāo)標(biāo)注 400電話辦理哪家性價(jià)比高 遂寧市地圖標(biāo)注app 天心智能電銷(xiāo)機(jī)器人 地圖標(biāo)注的公司有哪些 濮陽(yáng)外呼電銷(xiāo)系統(tǒng)怎么樣

上篇文章大概講了DataList的一些基礎(chǔ)知識(shí),掌握這些知識(shí)在將來(lái)的應(yīng)用中起到很大的作用,現(xiàn)在我們就開(kāi)始講上篇文章中說(shuō)的基礎(chǔ)知識(shí)做一個(gè)小例子。
    首先,我機(jī)子的數(shù)據(jù)庫(kù)中有一張person表,如下圖所示。


現(xiàn)在,我們用DataList控件將表中的信息顯示出來(lái),并可以在DataList控件上對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行編輯操作。
    1、首先用vs創(chuàng)建web應(yīng)用程序,添加web窗體,在web窗體內(nèi)拉入DataList控件,右擊控件,選擇編輯項(xiàng)模板,在這里我們能看到四個(gè)模板,其中兩個(gè)是SelectedItemTemplate和EditItemTemplate,在ItemTemplate模板中拉入兩個(gè)LinkButton控件,一個(gè)將Text改名為查看,CommandName屬性改成select,另外一個(gè)將Text改成編輯,其CommandName屬性改成edit。然后在HTML頁(yè)面創(chuàng)建SelectedItemTemplate模板,在模板中綁定員工的所有信息。(這里是實(shí)現(xiàn)查看員工詳細(xì)信息的功能)。
    2、在EditItemTemplate模板項(xiàng)中添加兩個(gè)LinkButton控件,Text屬性分別為保存和取消,CommandName屬性分別為update和cancel,然后再添加一個(gè)TextBox控件,用來(lái)輸入姓名,在這里實(shí)現(xiàn)修改員工姓名的功能。
    3、我們還可以在屬性生成器總更改表格的樣式、將字體的顏色、網(wǎng)格的距離更改一下,這里詳細(xì)不住不再敖述,最后結(jié)束模板編輯。
    4、編輯前臺(tái)HTML代碼
    ItemTemplate模板中的代碼(用來(lái)顯示員工的姓名)

ItemTemplate> 
 asp:LinkButton ID="lbtnShowDetails" runat="server" CommandName="select" ForeColor="Red">查看/asp:LinkButton> 
 asp:LinkButton ID="lbtnEdit" runat="server" CommandName="edit" ForeColor="Red">編輯/asp:LinkButton> 
 %# DataBinder.Eval(Container.DataItem,"personName") %> 
/ItemTemplate> 

    SelectedItemTemplate模板中的代碼(用來(lái)顯示員工中的詳細(xì)信息)

 SelectedItemTemplate> 
 員工編號(hào): %# DataBinder.Eval(Container.DataItem,"pID") %> 
 br /> 
 員工姓名: %# DataBinder.Eval(Container.DataItem,"personName") %> 
 br /> 
 員工性別: %# DataBinder.Eval(Container.DataItem,"personSex") %> 
/SelectedItemTemplate> 

    EditItemTemplate模板中的代碼(用來(lái)修改員工姓名)注意:將文本框中的text屬性綁定到員工的姓名上。

EditItemTemplate> 
 asp:LinkButton ID="lbtnupdate" runat="server" CommandName="update">保存/asp:LinkButton> 
 asp:LinkButton ID="lbtnCancel" runat="server" CommandName="cancel">取消/asp:LinkButton> br /> 
 員工編號(hào):%# DataBinder.Eval(Container.DataItem,"pID") %>br />姓名:asp:TextBox ID="txtName" runat="server" span style="color:#FF0000;">Text='%# DataBinder.Eval(Container.DataItem,"personName") %>'/span> Width="50px">/asp:TextBox> 
/EditItemTemplate> 

   最后是頁(yè)眉和頁(yè)腳模板

HeaderTemplate> 
  模板的頁(yè)眉 
 /HeaderTemplate> 
 FooterTemplate> 
  br /> 
  模板的頁(yè)腳 
 /FooterTemplate> 

   5、編輯好了的前臺(tái)界面如下
       

    6、后臺(tái)代碼的編寫(xiě)
    6.1、 編寫(xiě)DataList數(shù)據(jù)綁定的方法

private void dataBindToDataList() 
  { 
   SqlConnection con = DB.createConnection(); 
   SqlDataAdapter sda = new SqlDataAdapter(); 
   string sql = "select * from person "; 
   sda.SelectCommand = new SqlCommand(sql, con); 
   DataSet ds = new DataSet(); 
   sda.Fill(ds, "per"); 
   DataList1.DataKeyField = "pID"; //將主鍵存入到DataKeys集合當(dāng)中,以便后面對(duì)某一條數(shù)據(jù)進(jìn)行編輯。 
   DataList1.DataSource = ds.Tables["per"]; 
   DataList1.DataBind(); 
  } 

    6.2、編寫(xiě)Page_Loda事件,判斷頁(yè)面是否第一次加載,并在第一次加載頁(yè)面時(shí)綁定數(shù)據(jù)。

protected void Page_Load(object sender, EventArgs e) 
  { 
   if (!this.IsPostBack) 
   { 
    this.dataBindToDataList(); 
   } 
  } 

   6.3、編寫(xiě)DataList1_ItemCommand事件,實(shí)現(xiàn)查看員工詳細(xì)信息功能(前提是我們已經(jīng)在SelectedItemTemplate模板中將員工的詳細(xì)信息已經(jīng)綁定,現(xiàn)在只是調(diào)用方法將其顯示出來(lái))

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)// e表示DataList傳遞給該函數(shù)的信息。 
  { 
   if (e.CommandName == "select") 
   { 
    this.DataList1.SelectedIndex = e.Item.ItemIndex; 
    this.dataBindToDataList(); 
   } 
  } 

6.4、編寫(xiě)DataList1_EditCommand事件,實(shí)現(xiàn)編輯功能,將EditItemTemplate模板中的信息顯示出來(lái)。

protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)// e表示DataList傳遞給該函數(shù)的信息。 
  { 
   this.DataList1.EditItemIndex = e.Item.ItemIndex;//e.Item表示DataList中發(fā)生事件的那一項(xiàng) 
   this.dataBindToDataList(); 
 
  } 

   這時(shí)候,編輯模板項(xiàng)的綁定信息就會(huì)顯示出來(lái),我們可以在這更改姓名,或者取消編輯,效果圖如下

       

                                                

     最后是取消修改功能的代碼、更新功能的代碼、刪除功能的代碼,事件分別為DataList1_CancelCommand、DataList1_UpdateCommand、DataList1_DeleteCommand。

protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)// e表示DataList傳遞給該函數(shù)的信息。 
  { 
   DataList1.EditItemIndex = -1; //當(dāng)EditItemIndex屬性值為-1時(shí),表示不顯示EditItemTemplate模板 
   dataBindToDataList(); 
  } 
 
  protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) 
  { 
    string ID =DataList1.DataKeys[e.Item.ItemIndex].ToString(); 
    string name = ((TextBox)e.Item.FindControl("txtName")).Text ; 
    SqlConnection con = DB.createConnection(); 
    SqlCommand cmd = new SqlCommand("update person set personName='"+name+"'where pID='"+ID+"'",con); 
    cmd.ExecuteNonQuery(); 
    DataList1.EditItemIndex = -1; 
    dataBindToDataList(); 
  } 
  protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) 
  { 
   string ID = DataList1.DataKeys[e.Item.ItemIndex].ToString(); 
   SqlConnection con = DB.createConnection(); 
   SqlCommand cmd = new SqlCommand("delete from person where pID='" + ID + "'", con); 
   cmd.ExecuteNonQuery(); 
   DataList1.EditItemIndex = -1; 
   dataBindToDataList(); 
  } 

     用DataList控件實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中person表的操作,實(shí)現(xiàn)查看詳細(xì)信息,修改操作,大致流程是先修改DataList控件的各個(gè)模板中綁定的數(shù)據(jù),然后等待具體的事件使該模板中的內(nèi)容顯示出來(lái),最后再對(duì)數(shù)據(jù)進(jìn)行操作。當(dāng)數(shù)據(jù)適配器DateAdapter對(duì)象將數(shù)據(jù)源中的數(shù)據(jù)填充到DataSet中后,我么可以用DataList.DataKeyField=“主鍵字段名” 語(yǔ)句將主鍵添加到DataList的DataKeys集合中,當(dāng)我們要修改數(shù)據(jù)的時(shí)候可以再?gòu)脑摷现腥〕鲆庉嫷臄?shù)據(jù)項(xiàng)的主鍵,語(yǔ)句為DataList1.DataKeys[e.Item.ItemIndex]。這樣我們就可以隨心所欲的修改DataList表中的數(shù)據(jù)項(xiàng)了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:
  • 淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié)
  • 詳解ASP.NET數(shù)據(jù)綁定操作中Repeater控件的用法
  • 總結(jié)Visual Studio下ASP.NET模板化控件中的數(shù)據(jù)綁定
  • ASP.NET數(shù)據(jù)綁定GridView控件使用技巧
  • ASP.NET數(shù)據(jù)綁定之Repeater控件
  • ASP.NET數(shù)據(jù)綁定之GridView控件
  • ASP.NET數(shù)據(jù)綁定之DataList控件
  • AspNetAjaxPager,Asp.Net通用無(wú)刷新Ajax分頁(yè)控件,支持多樣式多數(shù)據(jù)綁定
  • ASP.NET數(shù)據(jù)綁定控件詳解

標(biāo)簽:婁底 汕頭 重慶 本溪 吉林 宜春 河南 麗江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇》,本文關(guān)鍵詞  ASP.NET,數(shù)據(jù),綁定,之,DataList,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章