asp.net動態(tài)產(chǎn)生checkbox(數(shù)據(jù)源為DB或內(nèi)存集合)
更新時間:2013年10月10日 16:18:56 作者:
動態(tài)產(chǎn)生一組checkbox(數(shù)據(jù)源為DB或內(nèi)存集合)且post提交時后臺能及時獲取等等,打算使用repeater+input(checkbox)+input(hidden)來實現(xiàn)
之前在網(wǎng)上看了很多,其實有一些也是大同小異,本人在此小編一下大致解決方案摒棄微軟提供的CheckBoxList
需求:
1動態(tài)產(chǎn)生一組checkbox(數(shù)據(jù)源為DB或內(nèi)存集合)
2post提交時后臺能及時獲取
3提交后刷新頁面checkbox保持原先選中或取消選中狀態(tài)
4避免產(chǎn)生大量的viewstate
方案:使用repeater+input(checkbox)+input(hidden)
html代碼
<asp:Repeater runat="server" ID="RPT_ReportType">
<ItemTemplate>
<input type="checkbox" value='<%#Eval("Id") %>' onclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>
<input type="hidden" name="reportType"/>
</ItemTemplate>
<AlternatingItemTemplate>
<input type="checkbox" value='<%#Eval("Id") %>' onclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>
<input type="hidden" name="reportType"/>
</AlternatingItemTemplate>
</asp:Repeater>
注:盡量把里面的OnClick中的匿名函數(shù)代碼寫在頁頭.
Js代碼
$(":hidden[name='reportType']").each(function () {
var obj = $(this).prev();
if (obj.attr('checked')){ $(this).val(obj.val()); }
});
當post提交時后臺獲取
string[] _str = Request["reportType"].Split(',');
字符串數(shù)據(jù)不可避免的會有空字符串,注意刪選,否則在拆箱時會出現(xiàn)類型轉換異常
需求:
1動態(tài)產(chǎn)生一組checkbox(數(shù)據(jù)源為DB或內(nèi)存集合)
2post提交時后臺能及時獲取
3提交后刷新頁面checkbox保持原先選中或取消選中狀態(tài)
4避免產(chǎn)生大量的viewstate
方案:使用repeater+input(checkbox)+input(hidden)
html代碼
復制代碼 代碼如下:
<asp:Repeater runat="server" ID="RPT_ReportType">
<ItemTemplate>
<input type="checkbox" value='<%#Eval("Id") %>' onclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>
<input type="hidden" name="reportType"/>
</ItemTemplate>
<AlternatingItemTemplate>
<input type="checkbox" value='<%#Eval("Id") %>' onclick="{var next = $(this).next();if($(this).attr('checked')){next.val($(this).val())}else{next.val('')}}" runat="server"/><%#Eval("TypeName")%>
<input type="hidden" name="reportType"/>
</AlternatingItemTemplate>
</asp:Repeater>
注:盡量把里面的OnClick中的匿名函數(shù)代碼寫在頁頭.
Js代碼
復制代碼 代碼如下:
$(":hidden[name='reportType']").each(function () {
var obj = $(this).prev();
if (obj.attr('checked')){ $(this).val(obj.val()); }
});
當post提交時后臺獲取
復制代碼 代碼如下:
string[] _str = Request["reportType"].Split(',');
字符串數(shù)據(jù)不可避免的會有空字符串,注意刪選,否則在拆箱時會出現(xiàn)類型轉換異常
相關文章
ASP.NET?MVC實現(xiàn)城市或車型三級聯(lián)動
這篇文章介紹了ASP.NET?MVC實現(xiàn)城市或車型三級聯(lián)動的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09.Net中的弱引用字典WeakDictionary和ConditionalWeakTable介紹
這篇文章介紹了.Net中的弱引用字典WeakDictionary和ConditionalWeakTable,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06asp.net中DBNull.Value,null,String.Empty區(qū)別淺析
這篇文章來給大家介紹asp.net中DBNull.Value,null,String.Empty區(qū)別淺析,有需要的同學可以參考一下2013-08-08MVC4制作網(wǎng)站教程第三章 刪除用戶組操作3.4
這篇文章主要為大家詳細介紹了MVC4制作網(wǎng)站教程,刪除用戶組功能的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08.NET Core中的HttpClientFactory類用法詳解
本文詳細講解了.NET Core中的HttpClientFactory類的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03使用 Visual Studio 的“代碼度量值”來改進代碼質(zhì)量
代碼度量是一組軟件度量值,使開發(fā)人員可以更好地了解他們正在開發(fā)的代碼.這篇文章主要介紹了通過 Visual Studio 的“代碼度量值”來改進代碼質(zhì)量,需要的朋友可以參考下2017-11-11asp.net實現(xiàn)存儲和讀取數(shù)據(jù)庫圖片
這篇文章主要為大家詳細介紹了asp.net實現(xiàn)存儲和讀取數(shù)據(jù)庫圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11