Asp.net中滿足條件的複選框自動被選中(一)
一、有這樣一種需求:給單個使用者分組,分兩步走
1)載入所有使用者組
2)當前使用者已在的分組的複選框被勾選上
二、下面先演示一下想要的效果:
1、給單個使用者分組,選擇使用者:
2、彈框
查詢所有分類列表;把已分組的複選框選中,效果圖如下:
三、實現思路:
這裡唯一的難點就是,選擇的當前使用者已在的分組的複選框被勾選上。下面說一下實現思路:這裡通過資料繫結+集合來實現的。
1)圖一、圖二都是資料來源繫結,選中圖一單個使用者,根據使用者code,去資料庫中查詢使用者的分組記錄,放入集合中供使用者圖二多選使用;
2)圖二根據繫結的資料,遍歷每一個複選框的資料,跟集合匹配;如果有和集合的資料相等的,對應的複選處於被選中的狀態。
四、程式碼展示
客戶端程式碼:
<table class="table table-striped"> <tr> <th> <input type="checkbox" name="chkCode" value="" />編號 </th> <th> 使用者組名稱 </th> <th> 備註 </th> <th> 有效性 </th> </tr> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td> <input type="checkbox" name="chkCodes" value="<%#Eval("Code") %>" <%#CheckBoxStatus(Eval("Code").ToString())%> /><%#Container.ItemIndex+1 %> </td> <td> <%#Eval("GroupName")%> </td> <td> <%#Eval("GroupMark")%> </td> <td> <%#Eval("ValidStatus") %> </td> </tr> </ItemTemplate> </asp:Repeater> </table>
伺服器端程式碼:
#region DataBinder()方法, Repeater1繫結使用者組 /// <summary> /// Repeater1繫結使用者組 /// </summary> protected List<string> strRoleCodeList = new List<string>(); public void DataBinder() { //從使用者列表中傳過來要分組的使用者 string[] userCodes = Request.QueryString["userCode"].ToString().Split(','); //查詢單個使用者的多分組集合code if (userCodes.Length == 1) { Data.UserList_UserGroupCollection UL_UserGroup = Data.UserList_UserGroupAdapter.Instance.LoadUserList_UserGroupCollByUserCode(userCodes[0]); foreach (var p in UL_UserGroup) { strRoleCodeList.Add(p.UserGroupCode); } } //繫結所有使用者組列表 int startRowIndex = (curPageIndex - 1) * AspNetPager1.PageSize; int RecordCount = 0; strSqlWhere = "1=1"; Data.UserGroupDataSource DefData = new Data.UserGroupDataSource(); Data.UserGroupCollection DefColl = DefData.Query(startRowIndex, AspNetPager1.PageSize, strSqlWhere, "CreateTime desc", ref RecordCount); AspNetPager1.RecordCount = RecordCount; Repeater1.DataSource = DefColl; Repeater1.DataBind(); } #endregion #region CheckBoxStatus(string code) 方法; 前臺繫結此方法,檢查哪些複選框處於被選中的狀態 protected string CheckBoxStatus(string code) { if (strRoleCodeList.Contains(code)) { return "checked='checked'"; } else { return ""; } } #endregion
注意事項:一定先把該使用者的使用者集合拿到放入集合當中,然後進行繫結;原因:資料繫結的時候就會自動檢測集合當中是否存在與之該匹配的值,此時下面的查詢集合根本沒有執行,複選框自然匹配不上。
六、總結
站在巨人的肩膀上繼續前進才是最明智的,呵呵。下篇將繼續完善備選複選框--被選中的複選框靠前顯示。
相關推薦
Asp.net中滿足條件的複選框自動被選中(一)
一、有這樣一種需求:給單個使用者分組,分兩步走 1)載入所有使用者組 2)當前使用者已在的分組的複選框被勾選上 二、下面先演示一下想要的效果: 1、給單個使用者分組,選擇使用者: 2、彈框 查詢所有分類列表;把已分組的複選框選中,效果圖如下:
Asp.net中滿足條件的複選框自動被選中(二)
被選複選框的靠前顯示 一、其他不多說,直接進入正題:我現在要把前一篇部落格中,被選中的複選框都靠前顯示,就是說要有圖一的效果做成圖二的效果: 二、實現思路 這也是一個難點,困擾了我很久,現在和大家一起分享: 實現思
jq判斷複選框是否被選中的3中方法
<input id="check1" type="checkbox" /> 方法一: var cbox = $("#check1").is(":checked"); alert(cbox); 複選框被選中彈出true,沒被選中彈出false。 方法二:
純css3實現美化複選框和手風琴效果(詳細)
關鍵技術點和原理: 原理就是把 checkbox或 radio 給隱藏掉 ,然後給選框 繫結一個label標籤。 然後用label標籤作為容器,在裡面放一個:before或一個after 用before模擬選框的框,用after來模擬選框的填充 通過 .magic-ch
jQuery檢測判斷複選框是否被選中了的幾種方法
今天專案有個新的需求,實現一個恢復出廠設定的功能,後臺引數已經給我,需要我根據引數做出恢復出廠的倆種情況,一種是恢復資料,另一種資料和配置都要恢復。所以我決定用用複選框來控制兩種情況,通過複選框來判斷ajax傳遞的路徑。 方法一: if ($("#checkbox-id"
Asp.net core 2.0.1 Razor 的使用學習筆記(一)
提升 完成後 安全 provider razor 官方 one text .cn 環境:vs2017 版本:15.5.6 這裏說明下, Razor頁面模式跟mvc出現了嚴重的不同。正如微軟官方說的一樣“Razor 頁面是 ASP.NET Core MVC 的一
ASP.NET MVC 企業級實戰 —— 建立使用者許可權管理示例程式(一)
網上有很多討論ASP.NET MVC,也有討論Jquery外掛的,同時把兩者結合起來做專案開發的卻是比較少。 ASP.NET MVC是比較優秀的後臺框架,而前臺採用JQuery外掛會做出比較漂亮美觀的介面。 講解了如何將兩者結合來開發Web應該系統。 將要建立的使用
asp.net裡面用appscan掃描部分漏洞與解決方法(一)
1、sql注入攻擊 使用引數方法錄入,過濾單引號。 2、已解密登入請求 AppScan要求密碼都要加密傳輸,最好是使用https。這個問題還可以使用ajax來觸發帳號驗證並登入, function login() { if ($("#txtUser"
如何在JSP中獲取html中多個複選框中的內容
html中複選框的程式碼 愛好: 看書 <input type="checkbox" name="userHobby" id="checkbox" value="Read"/> <label for="checkbox"></label> 打球
下拉框中可以實現複選框
(1)要實現的介面形式如下: 下面是jsp頁面中的寫法: <!-- 下面是下拉框中含有複選框。要是能夠傳值,必須重寫easyui——combox,用js新增複選框--> <tr> <td
html中標籤用法解析及如何設定checkbox複選框的預設選中狀態
本文導語: html中<checkbox>標籤用法解析及如何設定checkbox複選框的預設選中狀態(由www.169it.com蒐集整理)html中複選框Checkbox物件代表一個 HTML 表單中的 一個選擇框。html中複選框Checkbox物件的屬性屬性 描述a...
asp.net中Button按鈕點選兩次才執行Onclick事件的原因
今天寫了一個簡單的聊天室,有登入頁面和聊天室,當從登入頁面跳入到聊天室過後,卻發現要點選兩次傳送按鈕才能傳送到顯示區,然後傳送按鈕正常執行。 通過不斷測試,發現,第一次點選並沒有執行點選事件,第二次才執行的點選事件。並且也找到了問題所在。下面用一個
VC++ 如何向一個列表控制元件中動態新增複選框
宣告:由於自己的程式設計需要,這裡的列表控制元件只有一列,是list樣式。 1.首先給列表控制元件關聯一個成員變數,例如: DDX_Control(pDX, IDC_LIST_DtvParent, m
asp.net中GridView內部點選事件判斷是第幾行並獲取row資料
前臺: <asp:GridView ID="grid" runat="server" class="com_table" AutoGenerateColumns="False"> &l
asp.net中的按鈕點選事件
ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制元件(即<asp:Button>型別的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制元件(即<input ty
GridControl中新增checkbox複選框
新增一列,FieldName為 "check",將ColumnEdit 設定為 複選框 樣式。gridview1 editable設定為true 將要繫結的DataTable新增列 "check",Type 為 bool。 繫結DataTable到GridCon
jquery 複選框,如果選中就為不選中,如果不選中就為選中。
唉,生活無樂趣,程式碼更加無樂趣。每天一遍文章,督促自己要學習,要寫程式碼。 $("#checkboxAll").bind("click",function(){ //繫結一個事件 var checkboxs=$("[name=checkboxa]"); //找到name=c
[複選框] 獲取checkbox選中的值
版權宣告 一、情景 我想獲取複選框下處於選中狀態下的 值,該複選框的name屬性:name="active"。 二、程式碼 1、html程式碼 <input type="checkbox"
checkBox複選框,獲得選中那一行所有列的資料
function showCol(){ var check=$("input[name='one']:checked");//選中的複選框 check.each(function(){ va
jq實現複選框聯級選中和取消動作
圖例如下: <script> //獲取當前的複選框 $('input[name=pri_id_list[]]').click(function(){