layui和JQuery根据数据库给复选框设置默认被选中checked

本文介绍了如何结合layui和jQuery,根据从数据库获取的数据来设置页面加载时复选框的默认选中状态。重点在于layui设置checked后需要进行更新渲染以使页面复选框状态正确显示,同时展示了使用jQuery设置和检查复选框选中状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置复选框被选中

实现的效果图

  • 根据数据库查询的数据与input标签的title的值对比,相同则页面加载时默认被选中
  • layui设置被选中后,必须要进行“更新渲染”后,复选框才会显示被选中,否则只是checked改变,页面复选框无变化

更新渲染

这里写图片描述


1. 页面

<form id="form" class="layui-form" action="" method="post">
	<table id="recordsTable">
		<tr class="tr-h">
			<td class="w2-10">公司类型</td>
			<td colspan="6">
				<div>
					<c:set value="0" var="status" scope="page"/>
					<input type="checkbox" name="unitTypy" title="企业(分公司/其他)" lay-skin="primary"> 
					<input type="checkbox" name="unitTypy" title="事业单位" lay-skin="primary"> 
					<input type="checkbox" name="unitTypy" title="其他组织" lay-skin="primary"> 
				</div>
			</td>				
	</table>
</form>
						

2. script

<script> 
	layui.use([ 'layer', 'form', 'element' ], function() {
		var $ = layui.jquery, 
		layer = layui.layer, 
		form = layui.form, 
		element = layui.element;
		/* 自适应页面 */
		resizeTheWindow();
		/* 视窗变化监听 */
		window.onresize = function() {
			resizeTheWindow();
		}
		$(document).ready(function(){
			$.ajax({
				type: "GET",
				url: "${pageContext.request.contextPath}/***/***" ,
				dataType: "json",
				cache: false,
				async: false,
				success : function(data) {
					//给公司类型赋值并设置默认选中
					var unitType=[];
					unitType=data.unittypy.split(",");
					for(var j=0;j<unitType.length;j++){
						var unitTypeCheckbox=$("input[name='unitTypy']");
						for(var i=0;i<unitTypeCheckbox.length;i++){
							if(unitTypeCheckbox[i].title==unitType[j]){
								unitTypeCheckbox[i].value=unitType[j];
								unitTypeCheckbox[i].checked=true;
							}
						}
						form.render();  //更新渲染
					}		
				},
				complete : function(XMLHttpRequest, textStatus) {},
				ifModified : false,
				error : function() {}
			});
		});
		/* 自适应页面 */
		function resizeTheWindow() {
			var screenWidth = parseInt(document.documentElement.clientWidth * 0.6);
			var surplusWidth = ((screenWidth - 210) > 754)?(screenWidth - 210):754;
			document.getElementById('contentContainer').style.width = surplusWidth + 'px';
		}
	});
</script>
	

jQuery设置checked的方法

  1. 设置复选框的选中或取消
$("[name='checkbox']").attr("checked",'true');//全选 

$("[name='checkbox']").removeAttr("checked");//取消全选

$("[name='checkbox']:even").attr("checked",'true');//选中所有奇数 
  1. 设置某个被选中
$("#input").prop("checked",true); 
$("[name='unittype']").prop("checked",true);
$("[name='checkbox1']").attr("checked",'true');  
  1. 判断复选框是否被选中
var isChecked = document.getElementById("share_all").checked; //js判断checkbox的选中状态

var isChecked = $("#checkbox_id").attr("checked")=="checked"; //jquery判断checkbox的选中状态
@{ Layout = null; } <!DOCTYPE html> <html> <head> <link href="~/Scripts/layui/css/layui.css" rel="stylesheet" /> <script src="~/Scripts/layui/layui.js"></script> <script src="~/Scripts/jquery-3.4.1.js"></script> <style> body { padding: 10px 20px 20px 20px; width: 97% } .but { margin-top: -5px } .editInfo { display: none; } </style> </head> <body> <fieldset class="layui-elem-field"> <legend> <span class="layui-breadcrumb"> <a href="">基本信息管理</a> <a href="/UserManagem/Index" >员工管理</a> </span> </legend> <div class="layui-field-box"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" style="width: 60px;">员工账号</label> <div class="layui-input-block"> <input type="text" name="code" id="code" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <label class="layui-form-label" style="width: 60px;">员工姓名</label> <div class="layui-input-inline"> <input type="text" name="name" id="name" autocomplete="off" class="layui-input"> </div> </div> <button type="button" class="layui-btn layui-btn-radius but" id="searchButton" onclick="Search()"><i class="layui-icon layui-icon-search"></i>查询</button> <button type="button" class="layui-btn layui-bg-blue but" onclick="Add()"><i class="layui-icon layui-icon-addition"></i>添加</button> <button type="button" class="layui-btn layui-btn-danger layui-btn-radius"><i class="layui-icon layui-icon-delete"></i>批量删除</button> <button type="button" class="layui-btn layui-btn-danger layui-btn-radius"><i class="layui-icon layui-icon-export"></i>导出</button> <button type="button" class="layui-btn but" id="searchButton"><i class="layui-icon layui-icon-upload"></i>导入文件</button> </div> </div> </fieldset> <fieldset class="layui-elem-field"> <table class="layui-hide" id="test" lay-filter="test"></table> <script type="text/html" id="toolDemo"> <div class="layui-clear-space"> <a class="layui-btn layui-btn-xs" lay-event="edit" id="Edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> <a class="layui-btn layui-btn-xs layui-bg-orange" lay-event="del"><i class="layui-icon layui-icon-clear"></i>删除</a> </div> <!-- 在视图中添加以下隐藏表单 --> <div class="editInfo" style="padding:15px;"> <form class="layui-form" id="editForm"> <input type="hidden" name="ID" id="ID"> <div class="layui-form-item"> <label class="layui-form-label">员工账号</label> <div class="layui-input-block"> <input type="text" name="UserCode" required lay-verify="required" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">员工姓名</label> <div class="layui-input-block"> <input type="text" name="UserName" required lay-verify="required" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">性别</label> <div class="layui-input-block"> <input type="radio" name="Sex" value="true" title="男" checked> <input type="radio" name="Sex" value="false" title="女"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">出生日期</label> <div class="layui-input-block"> <input type="text" name="BirthDay" id="BirthDay" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">邮箱</label> <div class="layui-input-block"> <input type="text" name="Email" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">电话</label> <div class="layui-input-block"> <input type="text" name="Tel" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">地址</label> <div class="layui-input-block"> <input type="text" name="Address" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">状态</label> <div class="layui-input-block"> <input type="checkbox" name="Status" lay-skin="switch" lay-text="离职|在职"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="saveBtn">保存</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> </div> </script> </fieldset> <script> var tableIns; var form; var isEdit; layui.use(['table', 'form',], function () { var table = layui.table; form = layui.form; // 修正:移除重复的var声明 // 创建渲染实例 tableIns = table.render({ elem: '#test', url: '/UserManagem/GetList', page: true, cols: [[ { type: 'checkbox', width: '5%', title: '' }, { type: 'numbers', width: '5%', title: '序号' }, { field: 'UserCode', width: '8%', title: '员工账号' }, { field: 'UserName', width: '8%', title: '员工姓名' }, { field: 'Sex', width: '8%', title: '性别', templet: function (d) { return d.Sex ? "男" : "女"; // 修正:使用大写的Sex } }, { field: 'BirthDay', width: '8%', title: '出生日期', templet: function (d) { return convertJsonDate(d.BirthDay); } }, { field: 'BirthDay', width: '8%', title: '年龄', templet: function (d) { return calculateAge(d.BirthDay); } }, { field: 'Status', width: '8%', title: '是否离职', templet: function (d) { return d.Status ? "离职" : "在职"; } }, { field: 'Email', width: '8%', title: '邮箱' }, { field: 'Tel', width: '8%', title: '电话' }, { field: 'CreateDate', width: '8%', title: '创建时间', templet: function (d) { return convertJsonDate(d.CreateDate); } }, { field: 'Address', width: '8%', title: '员工住址' }, { title: '操作', width: '10.5%', templet: '#toolDemo' } ]], done: function (res, curr, count) { // 数据渲染完成后的回调 if (res.code !== 0) { // 假设0是成功状态码 layer.msg('数据加载失败: ' + res.msg, { icon: 5 }); } }, error: function () { // 请求错误的回调 layer.msg('网络请求错误,请检查接口', { icon: 5 }); } }); //编辑,删除 table.on('tool(test)', function (obj) { // 双击 toolDouble var data = obj.data; // 获得当前行数据 var field = obj.field; // 得到字段 var value = obj.value; // 得到修改后的值 var data = obj.data; // 得到所在行所有键值 // console.log(obj) if (obj.event === 'edit') { //编辑 //修改编辑职位 layer.open({ type: 1, // page 层类型 area: ['500px', '300px'], title: '编辑职位', shade: 0.6, // 遮罩透明度 shadeClose: false, // 点击遮罩区域,关闭弹层 maxmin: false, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: $(".editInfo").html() }); //赋值 form.val('demo-val-filter', { "jobname": data.JobName, "jobcode": data.JobCode, "ID": data.ID }); } else { layer.confirm('真的删除员工 [' + data.UserCode + '] 么', function (index) { obj.del(); // 删除对应行(tr)的DOM结构 layer.close(index); // 向服务端发送删除指令 $.ajax({ url: '/UserManagem/DelInfo', type: 'post', data: { id: data.ID }, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 1500 }, function () { Search(); }) } else { layer.msg(res.msg, { icon: 5, time: 1500 }) } } }) }); } }); }); // 处理日期格式函数 function convertJsonDate(jsonDate) { if (!jsonDate) return ''; try { // 提取时间戳 const timestamp = parseInt(jsonDate.match(/\d+/)[0]); // 创建 Date 对象 const date = new Date(timestamp); // 获取年、月、日 const year = date.getFullYear(); const month = (date.getMonth() + 1).toString().padStart(2, '0'); const day = date.getDate().toString().padStart(2, '0'); // 返回格式化后的日期 return `${year}-${month}-${day}`; } catch (e) { console.error('日期格式化错误:', e); return jsonDate; } } //表单提交事件,新增编辑 form.on('submit(demo1)', function (data) { var field = data.field; // 获取表单字段值 $.ajax({ url: '/UserManagem/Add', type: 'post', data: field, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 3000 }, function () { layer.closeAll(); // 关闭所有类型的层 Search(); }); } else { layer.msg(res.msg, { icon: 5, time: 2000 }); } } }) }) //重载,模糊查询 function Search() { var nameVal = $('input[name="name"]').val().trim(); var codeVal = $('input[name="code"]').val().trim(); // 完整重载 - 所有属性属性(options)均可参与到重载中 tableIns.reload({ where: { // 传递数据异步请求时携带的字段 name: nameVal, code: codeVal }, height: 500 // 重设高度 }); } // 处理日期格式函数 function convertJsonDate(jsonDate) { // 提取时间戳 const timestamp = parseInt(jsonDate.match(/\d+/)[0]); // 创建 Date 对象 const date = new Date(timestamp); // 获取年、月、日 const year = date.getUTCFullYear(); const month = (date.getUTCMonth() + 1).toString().padStart(2, '0'); const day = date.getUTCDate().toString().padStart(2, '0'); // 返回格式化后的日期 return `${year}-${month}-${day}`; } //新增职位 function Add() { // 在此处输入 layer 的任意代码 layer.open({ type: 1, // page 层类型 area: ['500px', '300px'], title: '新建职位', shade: 0.6, // 遮罩透明度 shadeClose: false, // 点击遮罩区域,关闭弹层 maxmin: false, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: $(".editInfo").html() }); } function calculateAge(jsonBirthDate) { if (!jsonBirthDate) return ''; try { // 先转换为日期格式 const birthDate = convertJsonDateToDate(jsonBirthDate); const today = new Date(); let age = today.getFullYear() - birthDate.getFullYear(); const monthDiff = today.getMonth() - birthDate.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) { age--; } return age; } catch (e) { console.error('年龄计算错误:', e); return ''; } } // 辅助函数:将JSON日期转换为Date对象 function convertJsonDateToDate(jsonDate) { const timestamp = parseInt(jsonDate.match(/\d+/)[0]); return new Date(timestamp); } </script> </body> </html> sexStatu数据类型都为bit 无法实现男女状态动态选择
最新发布
07-15
<think>好的,我现在需要解决用户的问题:在他们的ASP.NET MVC项目中,使用LayuijQuery构建的员工管理界面里,性别(Sex)状态(Status)字段的数据类型是bit,但当前实现无法动态选择男女在职/离职状态。用户提供的代码中,这两个字段在表格中使用了自定义模板来显示“男/女”“在职/离职”,但在编辑表单中,性别使用了固定选项的单选按钮,状态使用了开关复选框,但可能没有正确绑定数据。 首先,我需要理解问题的具体情况。用户提到SexStatus是bit类型,通常在数据库中bit类型存储为0或1,前端显示时需要转换为对应的文本。在表格中,用户已经正确应用了模板,将d.Sex转换为“男”或“女”,d.Status转换为“离职”或“在职”。但在编辑弹窗中,性别使用了固定的单选按钮,可能没有根据数据动态设置选中状态,状态的开关复选框可能也没有正确绑定当前值。 接下来,我需要检查编辑弹窗中的表单部分。在用户提供的代码中,编辑表单的HTML位于<script type="text/html" id="toolDemo">内部。性别部分的代码是: <input type="radio" name="Sex" value="true" title="男" checked> <input type="radio" name="Sex" value="false" title="女"> 这里的问题在于,无论数据中的Sex值是什么,男单选框始终被设置checked,而女的没有选中状态。应该根据数据中的Sex值来动态设置哪个单选框被选中。例如,如果Sex为true(1),则男选中;否则女选中。 状态部分的代码是: <input type="checkbox" name="Status" lay-skin="switch" lay-text="离职|在职"> 这里使用了Layui的开关组件,但可能没有根据数据中的Status值正确设置开关的状态。当Status为true(1)时,应该显示“离职”,即开关开启;否则显示“在职”,关闭。需要设置checked属性来控制。 因此,问题出在编辑表单的动态数据绑定上。在用户点击编辑按钮时,弹窗中的表单应该根据当前行的数据填充,并正确设置单选按钮开关的状态。当前的代码中,在layer.open之后,使用form.val来填充数据,但可能没有正确处理SexStatus字段的值转换。 查看用户代码中的编辑部分,当用户点击编辑时,执行以下代码: layer.open({ // ...其他配置 content: $(".editInfo").html() }); //赋值 form.val('demo-val-filter', { "jobname": data.JobName, "jobcode": data.JobCode, "ID": data.ID }); 这里可能存在几个问题。首先,form.val的过滤器名称是'demo-val-filter',但表单中的input元素的name属性是"UserCode"、"UserName"等,可能没有正确对应。其次,SexStatus字段的值没有被设置,导致表单中的单选按钮开关无法正确显示数据。 因此,解决方案包括: 1. 在编辑弹窗打开后,正确填充所有字段的值,包括SexStatus。使用form.val方法时,需要确保字段名称与表单中的name属性一致,并且处理bit值到对应控件状态的转换。 2. 对于性别单选按钮,需要根据data.Sex的值(true或false)来设置对应的radio按钮的checked属性。可能需要手动设置,因为form.val可能无法自动处理这种情况。 3. 对于状态开关,同样需要根据data.Status的值设置是否选中,可以通过在checkbox的input元素上动态添加checked属性。 此外,在保存编辑时,需要将表单中的单选按钮开关的状态转换为bit值(true/false或1/0)提交到后端。例如,性别单选按钮的值是字符串"true"或"false",需要转换为布尔值或对应的bit值。 现在,我需要具体修改代码。首先,在编辑弹窗的表单中,正确设置性别状态的初始值。在用户点击编辑按钮时,获取数据中的SexStatus,并设置到表单控件上。 在用户代码中,当点击编辑时,会执行form.val('demo-val-filter', {...}),但这里的'demo-val-filter'可能没有被正确应用到表单中的字段。需要检查表单中的input元素是否有对应的name属性,并且确保form.val的参数正确。 例如,表单中的性别单选按钮的name是"Sex",所以应该传递data.Sex的值。但用户当前的代码中,form.val的参数是jobname、jobcode、ID,而可能没有包括UserCode、UserName等,这可能导致其他字段无法正确填充。这可能是一个错误,因为用户可能在表单中有其他字段需要填充,如UserCode、UserName等。 因此,用户可能在编辑弹窗中没有正确加载所有字段的数据,导致SexStatus未被正确设置。正确的做法是在form.val中传递所有需要填充的字段,包括SexStatus,并确保表单中的控件名称正确。 例如,修改编辑部分的代码: // 赋值 form.val('editForm', { // 假设表单的id是editForm "UserCode": data.UserCode, "UserName": data.UserName, "Sex": data.Sex ? "true" : "false", // 将bit转换为字符串 "BirthDay": convertJsonDate(data.BirthDay), "Email": data.Email, "Tel": data.Tel, "Address": data.Address, "Status": data.Status // 这里可能需要处理开关的状态 }); 但需要注意,Layui的form.val方法可能需要特定的格式来处理单选按钮开关。对于单选按钮,需要确保传递的值与其中一个radio的value匹配,这样才会自动选中。因此,将data.Sex转换为字符串"true"或"false",与radio的value属性匹配。 对于状态开关,可能需要设置checked属性。例如,如果data.Status为true,则在checkbox上添加checked属性。这可能需要在表单加载后手动处理,因为开关可能由Layui的组件渲染,直接设置checked可能无效。 此外,在保存表单时,需要将表单中的值转换为适合后端接收的格式。例如,性别单选按钮的值是字符串"true"或"false",需要转换为布尔值或bit,而开关的值可能已经是布尔值。 总结问题及解决方案: 1. 编辑弹窗中的性别单选按钮未根据数据动态选中。解决方法:在form.val中正确传递Sex的值,并确保radio按钮的value匹配,或者手动设置checked属性。 2. 状态开关未正确显示在职/离职状态。解决方法:在弹窗打开后,根据data.Status的值,动态设置开关的checked属性。 3. 表单提交时,需要将表单中的性别状态值转换为后端接受的bit类型(true/false或1/0)。 具体修改步骤: - 在编辑弹窗的表单中,确保Sex的radio按钮的value为字符串"true""false",并与数据中的值匹配。 - 在layer.open之后,使用form.val填充表单数据,包括SexStatus字段。 - 对于状态开关,可能需要手动触发Layui的渲染或设置checked属性。 - 在表单提交时,拦截数据,转换SexStatus的值为正确的bit格式。 可能的代码调整: 在编辑事件处理中: if (obj.event === 'edit') { // 编辑 layer.open({ // ...配置 content: $(".editInfo").html(), success: function () { // 表单填充 form.val('editForm', { "ID": data.ID, "UserCode": data.UserCode, "UserName": data.UserName, "Sex": data.Sex.toString(), // 确保转换为字符串"true"/"false" "BirthDay": convertJsonDate(data.BirthDay), "Email": data.Email, "Tel": data.Tel, "Address": data.Address, "Status": data.Status // 可能需要处理开关状态 }); // 处理状态开关的显示 if (data.Status) { // 设置开关为开启状态(离职) $('input[name="Status"]').prop('checked', true); } else { // 关闭状态 $('input[name="Status"]').prop('checked', false); } // 重新渲染开关组件 form.render('checkbox'); } }); } 在表单提交时: form.on('submit(saveBtn)', function (data) { var field = data.field; // 转换SexStatus为布尔值或bit field.Sex = field.Sex === 'true'; // 转换为布尔值 // Status由开关自动处理,可能已经是正确的值 $.ajax({ url: '/UserManagem/Add', type: 'post', data: field, success: function (res) { // 处理结果 } }); }); 此外,需要确保表单中的提交按钮的lay-filter="saveBtn"与form.on('submit(saveBtn)')匹配。 另外,用户代码中存在两个convertJsonDate函数的定义,需要删除重复的部分。 总结问题,用户需要调整编辑表单的数据填充逻辑,确保SexStatus字段正确绑定到UI控件,并在提交时转换回正确的数据类型。</think>在 ASP.NET MVC 项目中,当 `Sex` `Status` 字段为 `bit` 类型时,前端需要通过模板控件绑定实现“男/女”“在职/离职”的动态展示与编辑功能。以下是问题的完整分析与解决方案。 --- ### ✅ 问题分析 1. **数据展示正常**: - 在表格中,`Sex` `Status` 字段通过 `templet` 函数已正确转换为“男/女”“在职/离职”。 2. **编辑表单控件绑定异常**: - **性别**使用了两个 `<input type="radio">`,但未根据数据动态选中。 - **状态**使用了 `<input type="checkbox">` 并通过 `lay-skin="switch"` 渲染为开关,但未根据数据设置初始状态。 3. **数据绑定缺失**: - 编辑时,`form.val()` 未正确绑定 `Sex` `Status` 字段,导致控件无法正确显示数据。 4. **数据提交格式不匹配**: - 表单提交时,`Sex` `Status` 需要转换为 `true/false` 或 `1/0` 才能与后端 `bit` 类型字段匹配。 --- ### ✅ 解决方案 #### 1. **编辑弹窗中动态绑定 `Sex` `Status`** 在 `table.on('tool(test)', ...)` 中,编辑操作时应动态填充表单并设置控件状态: ```javascript if (obj.event === 'edit') { // 编辑 layer.open({ type: 1, area: ['500px', '300px'], title: '编辑员工信息', content: $(".editInfo").html(), success: function () { // 填充表单 form.val('editForm', { "ID": data.ID, "UserCode": data.UserCode, "UserName": data.UserName, "Sex": data.Sex ? "true" : "false", // 注意:值应为字符串 "BirthDay": convertJsonDate(data.BirthDay), "Email": data.Email, "Tel": data.Tel, "Address": data.Address, "Status": data.Status }); // 手动处理开关状态 if (data.Status) { $('input[name="Status"]').prop('checked', true); } else { $('input[name="Status"]').prop('checked', false); } // 重新渲染开关组件 form.render('checkbox'); } }); } ``` #### 2. **表单提交时转换 `Sex` `Status` 数据格式** 在 `form.on('submit(saveBtn)', ...)` 中处理数据格式转换: ```javascript form.on('submit(saveBtn)', function (data) { var field = data.field; // 转换 Sex 为布尔值 field.Sex = field.Sex === "true"; // 提交数据 $.ajax({ url: '/UserManagem/Add', type: 'post', data: field, success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 1500 }, function () { layer.closeAll(); Search(); }); } else { layer.msg(res.msg, { icon: 5, time: 1500 }); } } }); return false; // 阻止表单默认提交 }); ``` #### 3. **确保表单控件名称与字段匹配** 在 `<form id="editForm">` 中,确保 `name` 属性与后端模型字段一致: ```html <input type="radio" name="Sex" value="true" title="男"> <input type="radio" name="Sex" value="false" title="女"> <input type="checkbox" name="Status" lay-skin="switch" lay-text="离职|在职"> ``` --- ### ✅ 总结 - **数据展示**:通过 `templet` 函数将 `bit` 类型转换为“男/女”“在职/离职”。 - **数据绑定**:在编辑弹窗中使用 `form.val()` 动态填充表单,并手动设置 `Sex` 单选按钮 `Status` 开关状态。 - **数据提交**:在表单提交前将字符串格式的 `Sex` 转换为布尔值,确保与后端 `bit` 类型兼容。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值