Aspxgridview實現checkbox全選
第一步,顯示checkbox按鈕;
點選AspxGridView的columns,你可以直接選擇增加一行Command Column或者隨便選擇一種然後點選Change To Commadn Column;預設的ShowSelectCheckBOx是true,我們可以不用管,這樣你就看到每行都有checkBox按鈕了。
第二步,表頭部顯示CheckBox,點選實現全選|反選功能;
我們切換回原始碼,找到AspxGridView的GridViewCommandColumn列,在該列中增加
<HeaderTemplate>
<dx:ASPxCheckBox ID="DchkAll" runat="server" ClientSideEvents-CheckedChanged="function(s,e){DgvwEmail.SelectAllRowsOnPage(s.GetChecked());}">
</dx:ASPxCheckBox>
</HeaderTemplate>
<HeaderStyle HorizontalAlign="Center" />
我們在HeaderTemplate增加一個Dev的CheckBox按鈕,設定他的樣式為HorizontalAlign="Center" ,呈居中狀態,我們給這個CheckBox按鈕ClientSideEvents-CheckedChanged增加了一個方法function(s,e){DgvwEmail.SelectAllRowsOnPage(s.GetChecked());},DgvwEmail為你AspxGridView控制元件的ID,到此,你就實現了表頭部的全選|反選功能了;
第三步,獲取選中行的ID,實現批量刪除或更改;
我們在頁面中增加一個Dev的Button按鈕,給按鈕新增點選事件;
首先我們寫一個方法獲取到所有選中行的ID
protected string GetDelID()
{ string delId = "";
//獲取選中的記錄Id ;
//ID為gridview的欄位名,可以一次取出多個欄位,例 // GetSelectedFieldValues(“ID”,“FieldName1”,"Fieldname2",...);
List<object> lSelectValues = DgvwEmail.GetSelectedFieldValues("ID");
for (int i = 0; i < lSelectValues.Count; i++)
{
delId += lSelectValues[i] + ",";
}
delId = delId.Substring(0, delId.LastIndexOf(','));
return delId;
}
這個方法獲取到了選中行的的Id,通過AspxGridView.GetSelectedFieldValues("ID")獲取繫結資料時的Id主鍵,然後遍歷所獲得ID;