1. 程式人生 > >Asp.net中滿足條件的複選框自動被選中(一)

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.netButton按鈕點兩次才執行Onclick事件的原因

     今天寫了一個簡單的聊天室,有登入頁面和聊天室,當從登入頁面跳入到聊天室過後,卻發現要點選兩次傳送按鈕才能傳送到顯示區,然後傳送按鈕正常執行。       通過不斷測試,發現,第一次點選並沒有執行點選事件,第二次才執行的點選事件。並且也找到了問題所在。下面用一個

VC++ 如何向一個列表控制元件動態新增

宣告:由於自己的程式設計需要,這裡的列表控制元件只有一列,是list樣式。 1.首先給列表控制元件關聯一個成員變數,例如: DDX_Control(pDX, IDC_LIST_DtvParent, m

asp.netGridView內部點事件判斷是第幾行並獲取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(){