ASP.NET巧妙利用repeater控制項和checkBox控制項實現大量操作

來源:互聯網
上載者:User

   一般的CMS(Content Manager System)中,不可避免的會涉及大量操作。比如顯示一頁資料,一個良好的設計都會加上大量刪除、批量推薦等操作。

   在ASP.NET中,做這樣的大量操作非常簡單,以大量刪除為例,我們僅需要checkBox控制項用來多選,外加一個大量刪除按鈕。顯示資料這裡採用repeater控制項。

   下面是我的工程中一段代碼:

   aspx前台檔案代碼:

 

<table>                   <tbody>                       <tr>                           <thclass="th_CheckBox"></th>                           <thclass="th_Floor">樓層號</th>                           <thclass="th_Room">房間號</th>                           <thclass="th_ComputerNumber">電腦編號</th>                           <thclass="th_ProName">問題名稱</th>                           <thclass="th_ProType">問題類型</th>                           <thclass="th_ProDescription">問題描述</th>                           <thclass="th_Operate">操作</th>                       </tr>                       <asp:RepeaterID="UnProRepeater" runat="server">                           <ItemTemplate>                               <tr>                                  <td><asp:CheckBox ID="cdDelete" ToolTip='<%#Eval("id") %>' Text="" runat="server"/></td>                                  <td><%# Eval("floor") %></td>                                  <td><%# Eval("rmNumber")%></td>                                  <td><a href='addUnFinishedPro.aspx?id=<%# Eval("id")%>'><%# Eval("cmNumber")%></a></td>                                  <td><%# Eval("name") %></td>                                  <td><%# Eval("typeName")%></td>                                  <td><%# cutString(Eval("description").ToString(),15,"...")%></td>                                  <td><asp:LinkButton ID="lbtnDelete"CommandArgument='<%# Eval("id") %>' OnClientClick="returnconfirm('真的要刪除嗎?')" OnClick="lbtnDelete_Click"runat="server">刪除</asp:LinkButton></td>                               </tr>                          </ItemTemplate>                      </asp:Repeater>                        </tbody>  </table>

  

   大家不要被這麼代碼嚇到了,真正有用的只有第一個<tr></tr>塊裡的<th class="th_CheckBox"></th>,目的是給單選框留出一列;第二個<tr></tr>塊裡的<td><asp:CheckBox ID="cdDelete" ToolTip='<%#Eval("id") %>' Text="" runat="server"/></td>,真正的顯示checkBox控制項。其中ToolTip屬性是為了攜帶記錄id,有了記錄id我們才能操作這條記錄。為啥用這個屬性呢?因為只有這個屬性最合適,讓人比較意外的是ASP.NET的checkBox竟然沒有value屬性,找來找去,只有ToolTip這個屬效能用來攜帶id了,而且使用者把滑鼠放到checkBox上還會顯示出記錄id,增加了程式的神秘感。把repeater控制項綁定資料之後,每條資料前都會多出一個單選框,這樣就達到目的了。作為例子,上邊這段代碼沒必要寫這麼多,但是為了給讀者一個完整的展示,還是把代碼寫全了。

   在介面上再添加一個大量刪除按鈕,前台就搞定了,怎麼在大量刪除按鈕事件中刪除選中的項呢?

   aspx.cs後台代碼:

 

protected void btnDelete_Click(object sender, EventArgs e)   {      bool result = true;      //遍曆repeater控制項的itemtemplate模版      foreach (RepeaterItem item in UnProRepeater.Items)      {          CheckBox cb = (CheckBox)item.FindControl("cdDelete"); //根據控制項id獲得控制項對象,cdDelete是checkBox控制項的id          if (cb.Checked == true)          {              //刪除操作,根據id刪除記錄,cb.ToolTip裡存放的就是記錄id          }      }      //別忘了刪除之後要重新綁定資料的哦。。。。。   }

  

   代碼中已經加上詳細的注釋,相信您一看即懂。

   通過這個簡單的小例子,展示了ASP.NET通過repeater控制項和checkBox控制項進行大量操作,希望對大家的學習有所協助!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.