当前位置: 首页 > news >正文

Selector选择器在AspNetCore中的用法

Selector选择器在AspNetCore中的用法

背景

项目编辑过程中会选择其所属的上级项目,而上级项目在数据结构中是以ParentID的方式表达,而非Project类型,用户不会记录也不应该记录ID值,因此应提供Selector项目下拉框供用户选择。

但是MVC的Razor页面绑定数据时绑定的时单个对象或者IEnumerate集合对象,因此,如果在页面上绑定项目列表则成为完成的难题。

绑定数据思路

首先声明一个Selector对象

<select name="cmdProjects" id="cmdProjects" class="form-control">
</select>

使用Ajax进行后台加载数据,

$.getJSON("@Url.Action("GetDDL_List", "Projects")"

上述指令为调用的后台函数为GetDDL_List,控制器为Projects,相当远转换为链接为

/Projects/GetDDL_List

整体javascript代码如下

 $(document).ready(function () {$("#cmdProjects").empty();$.getJSON("@Url.Action("GetDDL_List", "Projects")",function (data) {$.each(data, function (i, item) {$("<option></option>").val(item["value"]).text(item["text"]).appendTo($("#cmdProjects"));});});

在Controller中获取数据

public async Task<JsonResult> GetDDL_List()
{List<Project>? list = await ProjectUtils.Instance.ToListAsync();List<SelectListItem> listitem = new List<SelectListItem>();foreach (var prj in list){SelectListItem item = new SelectListItem(){Text = prj.Name.ToString(),Value = prj.ID.ToString()};listitem.Add(item);}return Json(listitem);
}

指定上级节点在选择器中的位置

javascript的.each方法中i变量表示索引,因此在.each之外定义临时变量index,然后在循环体内进行判断,最后将值赋值给选择器

$(document).ready(function () {...$.each(data, function (i, item) {...if(item["value"]==@Model.ParentID){index = i;}});$("option").eq(index).prop("selected", 'selected')});});

选项选中后触发的事件

$('#cmbProjects').on('change', function(){var selectedOption = $("#cmbProjects option:selected");$("#ParentID").val(selectedOption.val());
});
http://www.lryc.cn/news/157459.html

相关文章:

  • anaconda3最新版安装|使用详情|Error: Please select a valid Python interpreter
  • java八股文面试[多线程]——锁的分类
  • 儿童安全门和围栏,以及游戏围栏等美国站要求的合规标准是什么?
  • kafka配合ElasticStack技术栈的搭配使用
  • 对极几何与三角化求3D空间坐标
  • 英语语法笔记
  • ES6的面向对象编程以及ES6中的类和对象
  • ConfigMaps in K8s
  • 《机器人学一(Robotics(1))》_台大林沛群 第 6 周 【轨迹规划_直线转折处抛物线平滑】Quiz 6
  • 关于vscode的GitLens插件里的FILE HISTORY理解
  • 通过idea实现springboot集成mybatys
  • 力扣(LeetCode)算法_C++——移位字符串分组
  • Vue2 与Vue3的区别?面试题
  • java代码:Random和Scanner应用的小例子-猜数字小游戏
  • python调用git出错:ImportError: Failed to initialize: Bad git executable.
  • 【C语言】入门——指针
  • C#_预处理指令
  • 容器命令(docker)
  • Vue3 ElementPlus el-cascader级联选择器动态加载数据
  • leetcode分类刷题:栈(Stack)(一、字符串相邻元素删除类型)
  • 你还在找淘宝商品信息查询的接口吗?
  • dll修复精灵,dll修复工具下载方法分享,mfc140u.dll缺失损坏一键修复
  • [LINUX使用] iptables tcpdump
  • 百度文心一率先言向全社会开放 应用商店搜“文心一言”可直接下载
  • 【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理
  • 【vue】使用无障碍工具条(详细)
  • java实现命令模式
  • 【PowerQuery】PowerQuery学习路径
  • JDK7多线程并发环境HashMap死循环infinite loop,CPU拉满100%,Java
  • Linux下的系统编程——认识进程(七)