首页 > 编程语言 >asp.net中checkboxlist判断至少选择一项的方法

asp.net中checkboxlist判断至少选择一项的方法

时间:2022-11-11 13:06:17浏览次数:48  
标签:asp string System li checkboxlist result chkList net txt


asp.net中checkboxlist判断至少选择一项的方法_sql语句

asp.net中checkboxlist判断至少选择一项的方法_checkboxlist_02

asp.net中checkboxlist判断至少选择一项的方法_asp.net_03

.aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="1_CheckBoxList.aspx.cs" Inherits="_1_CheckBoxList" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="JS/jquery-1.8.3.js" type="text/javascript"></script>
<style type="text/css">
body,div,h2{ margin:0px; padding:0px;}
.warn { font-size:12px; color:Red;}
</style>


<script type="text/javascript">
function EmptyCheck(_chk, _span, _txt) {

var _check = $(":checked", _chk).val();

if (_check==null) {
$(_span).text("请至少选择1项!");
$(_txt).val("");
return false;
} else {
$(_span).text("");
return true;
}
}
</script>
</head>


<body>
<form id="form1" runat="server">
<div>
<h2>CheckBoxList控件应用实例:</h2>
<p>1.手动设置项: <span class="warn" id="err_chk_1"></span></p>
<%--注意checkBoxList的最终呈现:是在一个TABLE之内--%>
<asp:CheckBoxList ID="chkList_1" runat="server">
<asp:ListItem Value="A">第一项</asp:ListItem>
<asp:ListItem Value="B">第二项</asp:ListItem>
<asp:ListItem Value="C">第三项</asp:ListItem>
<asp:ListItem Value="D">第四项</asp:ListItem>
</asp:CheckBoxList>



<asp:Button ID="btn_1" runat="server" Text="检测哪几项被选中"
OnCommand="checkResult" CommandArgument="chkList_1,txt_result_1"
OnClientClick="return EmptyCheck('#chkList_1','#err_chk_1','#txt_result_1')"
/>

<asp:TextBox ID="txt_result_1" runat="server" Width="400"></asp:TextBox>
<hr />



<p>2. 从数据库中获取列表<span class="warn" id="err_chk_2"></span></p>
<asp:CheckBoxList ID="chkList_2" runat="server" DataSourceID="ADS_CHK2"
DataTextField="se_name" DataValueField="se_id">
</asp:CheckBoxList>
<asp:AccessDataSource ID="ADS_CHK2" runat="server" DataFile="~/DATA/EV.mdb"
SelectCommand="SELECT [se_name], [se_id] FROM [T_SERIES]">
</asp:AccessDataSource>


<asp:Button ID="btn_2" runat="server" Text="检测CHK2哪几项被选中"
OnCommand="checkResult" CommandArgument="chkList_2,txt_result_2"
CommandName="cmd_selist"
OnClientClick="return EmptyCheck('#chkList_2','#err_chk_2','#txt_result_2')"
/>

<asp:TextBox ID="txt_result_2" runat="server" Width="400"></asp:TextBox>


<p>
构建SQL语句:<br />
<asp:TextBox ID="txt_sql" runat="server" TextMode="MultiLine" Rows="4" Width="400" />


</p>
</div>



</form>
</body>
</html>


设计视图如下:

asp.net中checkboxlist判断至少选择一项的方法_asp.net_04

.aspx.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _1_CheckBoxList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}


//自定义函数: 构建listitem的TEXT和VALUE组成的字符串
protected string getResult(ListItem _li) {
string _result = "";
_result = _li.Text + ":" + _li.Value + ",";
return _result;

}


//onCommand代码,根据e携带的参数,确定对哪一组checkboxlist处理,
//并将结果输出到那个文本框
//##### ! 特别注意:文本框,checkBoxList元素的ID都是带相同后缀的构成方式,
// 思考他们出现在ListView下,clientIDMode设置成Predictable后,参数e该如何设置


protected void checkResult(object s, CommandEventArgs e) {
//分割参数,获取两个ID
string[] id = e.CommandArgument.ToString().Split(',');


//由参数获取对应的checkListBox和TextBox
CheckBoxList _chkList = (CheckBoxList)FindControl(id[0]);
TextBox _txt = (TextBox)FindControl(id[1]);

//清空textbox结果;
_txt.Text = "";

string _in = "";
//遍历获取结果
foreach (ListItem li in _chkList.Items) {
if (li.Selected) {
_txt.Text += getResult(li); //由自定义函数完成字符串构建

_in += li.Value + ","; //构建SQL语句需要的部分字符串
}
}


//对不同commandName进行分支处理
switch (e.CommandName) {
case "cmd_selist":
string sql_s = "SELECT * FROM TB_MONITOR ";
string sql_w = "WHERE mo_seid in (" + _in + ")"; //SQL语句,列表中,最后多一个",",不会影响执行结果
txt_sql.Text = sql_s + '\n' + sql_w;
break;

}


}

}


效果如下:

asp.net中checkboxlist判断至少选择一项的方法_sql_05

标签:asp,string,System,li,checkboxlist,result,chkList,net,txt
From: https://blog.51cto.com/u_15866446/5844719

相关文章