ASP.NET給DataGrid,Repeater等添加全選大量刪除等功能)

來源:互聯網
上載者:User

很多情況下,在管理或者查看列表的時候我們需要很需要“全選”這個功能,這在ASP.NET中是非常容易實現的,下面我就將示範一點小代碼實現這一功能。
  實現全選的還是js的一個小函數:
  
function  CheckAll(e,itemname){
    var aa=document.getElementsByName(itemname);
    if(aa==undefined) return;
    for (var i=0; i<aa.length; i++)aa[i].checked = e.checked;
}     

 
  先看在asp:Repeater中的實現過程。

  在HeaderTemplate中直接添加全選的一個CheckBox: 
<input name="chkall" value="1" type="checkbox" onclick="CheckAll(this,'Item')"/>

  在ItemTemplate中綁定的時候只需要給Input設定目前行的ID編號等即可:
        <td align="center" ><input name="Item" type="checkbox" value='<%# Eval("deal_id")%>'/></td>

 

  然後我們建立一個“全部刪除”的LinkButton,當點擊的時候執行一個後台代碼:
<asp:LinkButton id="LB_Bak_Delete" text="大量刪除" OnCommand="LinkButton_Command"  runat="server" CommandName="delete" visible="false"/>

  所執行的函數名稱是LinkButton_Command,給其設定參數CommandName的主要目的就是標記這個操作是刪除功能(很多時候還需要產生啊,高亮啊等操作),看看LinkButton_Command的執行:
protected void LinkButton_Command(Object sender, CommandEventArgs e){
    string ids=Request.Form["Item"];
    switch(e.CommandName){
        case "delete":
        BakDelete(ids);
        break;
    }
    Data_List_Load();//重新載入
    return ;

}
private void BakDelete(string ids){
    //ODeal是個類
    if(!String.IsNullOrEmpty(ids) && ODeal.Delete("[deal_id] in ("+ids+")")){
        OutMess("大量刪除資料成功");
    }else{
        OutMess("大量刪除失敗");
    }
}

 
 然後我們看看在 DataGrid  或者 DataView中的方法:

  使用的js還是一樣的,在前台顯示的時候:
    <asp:TemplateColumn HeaderText="<input name='chkall' value='1' type='checkbox' onclick='CheckAll(this,JS_Item_Text)'/>" ItemStyle-Width="30px" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"  HeaderStyle-CssClass="head">
        <ItemTemplate><input name="Item" type="checkbox" value='<%# Eval("td_id")%>'/></ItemTemplate>
    </asp:TemplateColumn>

  這裡需要注意的是CheckAll執行的方法中有個單引號,這裡是不能加進去的,就先聲明一個js的變數,然後在載入列表的時候寫個js用戶端註冊:
 列表ClassGridDataBind的時候,加入:

    string sScript = "var JS_Item_Text='Item';";
    ClientScriptManager Objcsm = Page.ClientScript;
    if (!Objcsm.IsStartupScriptRegistered("_JS_Item_Text")){
        Objcsm.RegisterStartupScript(this.GetType(), "_JS_Item_Text", sScript, true);
    }

 

  然後其他的和Repeater的都是一樣的。

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/xielingxu/archive/2008/07/28/2726089.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.