精华内容
下载资源
问答
  • 背景: 前端框架为AdminLTE,后台为SSM,项目中需要实现表格添加行的功能,并且这有select2的多选数组遇到的问题: (1)select2多选返回的数据是数组,但添加多行,由于其name相同,springMVC通过String[]...

    背景:

          前端框架为AdminLTE,后台为SSM,项目中需要实现表格添加一行的功能,并且这一行中有select2的多选数组

    遇到的问题:

        (1)select2多选返回的数据是数组,但添加多行,由于其name相同,springMVC中通过String[]  orgNames获取的数据错误

                eg:第一个select2多选获得的数组值   orgName={1,2},第二个select2多选获得的数组值   orgName={3,4}

                        后台获取的   orgName={1,2,3,4},无法区分各个select2获取的值

                    方案:通过提交时将name属性改变

      (2)添加一行后需要再次渲染select2

      (3)更改节点name属性后,通过document.getElementsByName("nameIdsArray")获取的数组数量减一

    代码:

    页面  

    <form class="form-horizontal" action="${ctx}/orgAction/${action}.action" οnsubmit="return check()">
    	<table class="table table-striped" id="workTable">
    		<tr>
    			<th style="width: 6%; text-align: center;"><a
    				title="点击添加一行" οnclick="addLine()"> <i
    					class="fa fa-fw fa-plus-circle"></i>
    			</a></th>
    			<th>职务</th>
    			<th>姓名</th>
    			<th>分工</th>
    		</tr>
    		<c:forEach items="${orgWorks}" var="orgWork" varStatus="number">
    			<tr>
    				<td align="center" οnclick="deleteTr(this)"><a
    					title="点击删除此行"><i class="fa fa-fw fa-minus-circle"></i> </a>
    				</td>
    				<td style="width: 30%;">
    					<select class="form-control select2" style="width: 100%;" name="orgDutyArray">
    						<c:forEach items="${dutys}" var="duty">
    							<option value="${duty.value}"
    								<c:if test="${duty.value==orgWork.orgDuty}">selected="selected"</c:if>>${duty.label}</option>
    						</c:forEach>
    					</select>
    				</td>
    				<td style="width: 20%;"><input name="userNameArray"
    					value="${orgWork.userName}" type="text"></td>
    				<td style="width: 50%;">
    					<div class="form-group">
    						<select class="form-control select2" multiple="multiple"  data-placeholder="分工" style="width: 100%;"  name="nameIdsArray">
    							<c:forEach items="${workTypes}" var="workType">
    								<option value="${workType.value}"
    									<c:forEach items="${fn:split(orgWork.nameIds,';')}" var="nameId1" begin="0"  end="${fn:length(fn:split(orgWork.nameIds,';'))}" varStatus="stat">
    										<c:if   test="${workType.value==nameId1}">  
    											selected="selected"
    										</c:if>  
    									</c:forEach>   <!-- 这边写的有点复杂,完全可以用select2的接口实现,当时懒得找,不建议这样写 -->
    							>${workType.label}</option>
    							</c:forEach>
    						</select>
    					</div>
    				</td>
    			</tr>
    		</c:forEach>
    		<tr id="tb"></tr>		
    	</table>
    	<button type="submit" class="btn btn-info pull-right">保存</button>
    </form>
    
    
    <script type="text/JavaScript">
    	$(document).ready(function() {
    		$('.select2').select2();
    	});//渲染select2
    	
    		//添加一行
    	function addLine() {
    			var html= " <tr>                                                                        "+
    					  "  	<td align='center' οnclick='deleteTr(this)'><a                          "+  
    					  "		title='点击删除此行'><i class='fa fa-fw fa-minus-circle'></i> </a></td>"+
    					"	<td style='width: 30%;'><select                        "+
    					"		class='form-control select2' style='width: 100%;' "+
    					"		name='orgDutyArray'>	"+
    					"			<c:forEach items='${dutys}' var='duty'>   "+
    					"				<option value='${duty.value}'>${duty.label}</option>   "+
    					"			</c:forEach>   "+
    					"	</select></td>     "+
    					"	<td style='width: 20%;'><input name='userNameArray'			"+
    					"		value='' type='text'></td>   "+
    					"	<td style='width: 50%;'>   "+
    					"		<div class='form-group'>    "+
    					"			<select class='form-control select2' multiple='multiple'   "+
    					"				data-placeholder='分工' style='width: 100%;' "+
    					"				name='nameIdsArray'> "+
    					"				<c:forEach items='${workTypes}' var='workType'> "+
    					"					<option value='${workType.value}'>${workType.label}</option> "+
    					"				</c:forEach>"+
    					"			</select>"+
    					"		</div>"+
    					"	</td>"+
    					"</tr> ";
    		$("#tb").before(html);
    	    $('.select2').select2(); //将页面画上去,需要重新渲染一遍
    	}
    	//删除本行
    	function deleteTr(Obj) {
    		$(Obj).parent().remove();
    	}
    	验证表单
    	function check() {
    		var userNameNodes = document.getElementsByName("userNameArray");
    		var nameIdsNodes = document.getElementsByName("nameIdsArray");
    		if(nameIdsNodes !== null || nameIdsNodes !== undefined || nameIdsNodes !== ''){
    			for ( var i = 0; i < userNameNodes.length; i++) {
    				//改变名字是为了后台取数据
    			    nameIdsNodes[0].name=userNameNodes[i].value; //如果将名字改变,在nameIdsNodes中出去改变名字的节点,并重排角标,这里是个大坑
    			}
    		}
    		return true;
    	}
    </script>
    
    
    
    

    后台

    @RequestMapping(value="updateOrg")
    	public String updateOrg(String[] orgDutyArray,String[] userNameArray){
    		List<OrgWork> orgWorklist = new ArrayList<OrgWork>();
    		for (int i = 0; i < orgDutyArray.length; i++) {
    			String[] name = request.getParameterValues(userNameArray[i]);
    			String  nameString ="";
    			for (int j = 0; j < name.length; j++) {
    				nameString=nameString+";"+name[j];
    			}
    			OrgWork  orgWork= new OrgWork("",orgDutyArray[i], userNameArray[i], org.getOrgId(),nameString.substring(1),"");
    			orgWorklist.add(orgWork);
    		}	
    
    		return "orgManager/orgForm";
    	}

    展开全文
  • 更多的时候,我们希望每当我们点击进入这个列表框的时候,它会默认选中我们上一次保存的值(不考虑Preferences控件,Preferences控件会自动保存我们选择的值),而不是每次进入后它都是停留一个项目上。...

    在项目当中,我们会经常使用到如下的单选列表框。



    更多的时候,我们希望每当我们点击进入这个列表框的时候,它会默认选中我们上一次保存的值(不考虑Preferences控件,Preferences控件会自动保存我们选择的值),而不是每次进入后它都是停留在第一个项目上。想要实现这个效果很简单,只要我们对AlertDialog.Builder的setSingleChoiceItems()方法做一些简单了解就可以。

    setSingleChoiceItems()有四个重载的方法:

    1、从资源文件中装载数据:
    public AlertDialog.Builder setSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener)
    2、从数据集中装载数据
    public AlertDialog.Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn, final OnClickListener listener)
    3、从字符串数组中装载数据
    public AlertDialog.Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
    4、从ListAdapter对象中装载数据
    public AlertDialog.Builder setSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener listener)


    我们只需要关注第二个参数:

    checkedItem:指定哪个项目被选中,默认为0表示选中第一个项目,-1表示没有项目被选中

    所以我们只需要先从保存的数据中得到原先的序号,将此序号作为checkedItem参数传入即可。




    展开全文
  • 正当项目即将完成之际,恰逢项目经路来了句,搜索我觉得高亮显示会更好一些,把这需求弄一下.恰同学少面年,跟项目经理争执了半天也没有结果.最后我不要你觉得,我要我觉得,惨败收场.此时心里面不知道多少???...

    日复一日,反反复复,终于完成了小程序的项目.。这篇文章我就对自己的项目中用到的array方法结合具体的功能进行综合的分析

    搜索区高亮的显示

    使用方法Str.replace()+正则+Array.map()

    正当项目即将完成之际,恰逢项目经路来了一句,搜索框我觉得高亮显示会更好一些,把这个需求弄一下.恰同学少面年,跟项目经理争执了半天也没有个结果.最后我不要你觉得,我要我觉得,惨败收场.此时心里面不知道多少个???what?.没办法,硬着头皮也得来呀.简单分析后,其实原理并不难

    原理:字符串替换

    基本想法就是字符串替换。现在的问题简化成了:如何把一段字符串中的指定的内容替换成另一个内容:

    var str = "abcdefgbefab"
    // 目标: 把str中的b全部换成<span>b</span>
    // 普通字符串替换:str.replace(目标字符串,要替换的字符串),它的返回值是替换之后的字符串,注意它不会修改原字符串。
    // 它的问题是,它只能替换一次。如上,我们有两个b需要替换,那又该怎么办呢?
    // - 循环
    // - 正则
    

    此时到这里以后,我觉得可以使用正则来进行解决

    <script>
            // 实现正则替换
            var str ="abdAd";
            var keywork = "ab"
            // 目标是:
            //     把所有的a替换成<span style="color:red">a</span>
            // 请开始你的表演
            // replace如果不用正则,只能换一次
            // var str1 = str.replace("a",'<span style="color:red">a</span>')
    
            // replace(正则,函数)
            // /a/gi :正则
            //      g表明要做全局匹配。只匹配出所有的子串。
            //      i表明匹配不分大小写。
            // new RegExp('a','gi'); 用构造器的方式来创建正则表达式就可以把
            //     第一个参数写成变量
            // 如果在字符串用正则匹配到了内容,则会去执行函数。
            // 函数的执行细节是:
            //  - 参数obj是匹配到的内容 
            //  - 返回值是替换之后的结果 
            var str1 = str.replace(new RegExp(keywork,'gi'),function(obj){
                console.log(obj)
                return '<span style="color:red">'+obj+'</span>'
            })
    
            console.log(str1); // '<span style="color:red">a</span>bAdd'
        </script>
    

    在计算属性中定义

    this.searchSuggestions是搜索是获取的数据是一个数组

    <script>
    ....
     computed: {
        // 补充一个计算属性对searchSuggestions中的数据做高亮
        cSearchSuggestions () {
          // 创建正则表达式
          const reg = new RegExp(this.keyword, 'gi')
          return this.searchSuggestions.map(str => {
            // 原来是:str
            // 替换成:对关键字进行高亮之后的字符串
            const str1 = str.replace(reg, function (obj) {
              return `<span style="color:red">${obj}</span>`
            })
            return str1
          })
        }
      },
    }
    </script>
    

    使用array.map返回的就是一个数组.所以此时只需要对当前的数组进行遍历就可以了

    但是问题又出现了

    我们替换的的是html,那么如何渲染 到小程序上哪?

    使用小程序的 rich-text组件 nodes后面跟的是需要渲染的数据

    <rich-text nodes="HTML字符串"></rich-text>
    

    此时就完成了搜索框的渲染
    效果图如下:
    在这里插入图片描述

    搜索历史记录

    使用方法:array.splice+array.unshift+array.indexOf

    搜索区域的历史记录涉及的东西也比较多.之前在做vue的项目中也比较常用.
    对于历史记录的用一个数组来进行保存,并且要做数据的持久化.所以里面也会用到Storage相关的api.因为使用的是uniapp进行开发的,所以相关的api进行查阅文档就可以了.开始进入正题吧.
    当项目经理找到我的时候,给我提了一个我需求.要求:点击的历史记录在被点击以后,选项要被提前.点击相关的选项要进入到相关的搜索结果区域
    以上就是需要.下面开始功能的完善
    在这里插入图片描述
    首先是关于数据重复的问题:当我们添加数组的时候,可以先进行判断.
    html结构

    <input type="text" @focus="changeColor" :placeholder="value"
    			@input="getKey" v-model="word"
    			@confirm="confirmSeach"
    			>
    

    js

    // 保存历史记录(获取本地数据)
    			hisArr:uni.getStorageSync('history')||[]
    

    点击回车以后,把我们的数据添加到数组中

    // 输入框点击回车确定
    		confirmSeach(){
    			// 保存搜索的数据
    			const str=this.word
    			// 判断数组中是否有相同的值
    			const data=this.hisArr.indexOf(str)
    			// 若索引不等于-1,则说明存在值
    			if(data!==-1){
    				// 删除数组中的值
    			this.hisArr.splice(data,1)
    			}
    			// 将当前点击的数组提前
    				this.hisArr.unshift(str)
    				// 将数组保存到本地
    				uni.setStorageSync('history',this.hisArr)
    			// 清空数据
    			this.word=''
    			// 清处联想建议
    			this.resultArr=[]
    		},
    

    此处我们使用了indexOf来进行判断,当然也可以使用其他的方法.
    在这里插入图片描述

    点击商品加入购物车

    数组方法:array.forEach+开关思想

    在商品列表点击的时候那,会进行token的验证,如果此时用户没有登录,我们会让用户进行登陆以后在进行购物车的添加.随后,又有一种新的突破方式,就是.用户没有登录,我们将添加的购物车数据保存到本地.等到用户登录的时候,我们在添加到购物车中.而我在项目中用到的就是这种方式
    在这里插入图片描述
    效果如下:
    在这里插入图片描述
    重复的数据我们使数量进行加加就可以了,不是重复的数据我们在添加到数组中
    定义的数据

     //uni.getStorageSync('item')获取本地的保存的商品记录
                carList:uni.getStorageSync('item')||[]
    
     // 点击加入购物车
            addItem(){
               // 将数据保存到购物车中
                // 保存到本地中
                // 定义一个对象保存数据
                const obj={
                    // 商品的id
                    goods_id:this.imgMsg.goods_id,
                    // 商品的名字
                    goods_name:this.imgMsg.goods_name,
                    // 商品的价格
                    goods_price:this.imgMsg.goods_price,
                    // 商品的数量
                    goods_number:1,
                    // 商品的图片
                    goods_small_logo:this.imgMsg.goods_small_logo
                }
                // 判断商品是否重复
                var status= false
                    //    遍历数组
                this.carList.forEach((item,index)=>{
                    //    如此时传入的对象id与数组中的对象id相同则说明存在某值
                    if(item.goods_id===obj.goods_id){
                        // 商品数量++
                    item.goods_number++
                        // 修改状态
                        status=true
                    return
    
                }
                })
                    // 如果status不等于true
                    if(status===false){
                        // 此时说明数据不重复
                        this.carList.push(obj)
                    }
                    // 消息提示添加购物车成功
                 uni.showToast({title:"添加购物车成功"})
                // 将数据保存到本地
                 uni.setStorageSync("item",this.carList);
            },
    

    此处我们定义可一个变量status来判断遍历的情况,当然也可以使用其他方法

    array.find()

     const data = this.carList.find(item => {
                  return item.goods_id === obj.goods_id
                })
                // ,有值则为true
                if(data){
                   data.goods_number++
                }
                // 如果没有值则返回的是undefined
                else{
                  this.carList.push(obj)
                }
    

    添加商品列表的数据

    使用方法:Array.concat()或Array.push(…Arr)

    //获取数据后将获取的数据
     // 保存到数组中
          this.textArr.push(...message.goods)
          //message.good是一个数组
          //第二种方法使用concat
          this.textArr=this.textArr.concat(message.goods)
    

    购物车实现单选

    一般情况下,当用户选中了某个商品加入购物车的时候,我们就认为用户会有买的想法,所以此时我们可以自定义一个加入购物车的状态。当我们添加商品进入购物车的时候,我们就认为这个状态是一个true。
    商品页的js

     // 定义一个对象保存数据
                const obj={
                    // 商品的id
                    goods_id:this.imgMsg.goods_id,
                    // 商品的名字
                    goods_name:this.imgMsg.goods_name,
                    // 商品的价格
                    goods_price:this.imgMsg.goods_price,
                    // 商品的数量
                    goods_number:1,
                    // 商品的图片
                    goods_small_logo:this.imgMsg.goods_small_logo,
                    //添加商品,默认选中
                    goods_status:true
                }
    

    此时我们进入js的时候我们加入的商品状态就应该是这个样子
    在这里插入图片描述
    默认的选中状态,在点击了以后发生状态的改变。
    接下来我们可以使用计算属性来确定全选的状态,可以根据各个状态的个数来进行判断
    此时我们可以使用arr.filter()

    使用Array.filter()解决全选的问题

    购物车的js

     // 能否找到false
     //遍历商品的数组,判断data,如果data有值就说明有一个状态是没有选中的
            if(this.itemList){
              const data= this.itemList.find(i=>{
             return i.goods_status===false
            })
            // 找到就是有值
            if(data){
              // 保存数据
              //此时返回false状态就行
              return false
            }
            // 没有值就是undefined
            //没有值就说明都是true,都是选中的状态
            return true
            }
    

    此时我们就实现了点击单选后实现全选的状态
    在这里插入图片描述
    接下来就是实现点击全选和全不选的问题

    实现点击全选和取消全选

    使用方法array.forEach()

    思路实现,获取当前全选的状态,点击后设置为!status取反的状态,
    根据当前的状态对数组进行判断,使数组中的数据全部设置为当前全选的状态

    // 点击全选的切换
          changeAllCheck(){
            // 获取当前点击的状态
            const status=!this.allCheck
            // 点击全选的切换
            this.itemList.forEach(i=>{
              // 若当前点击的是true则所有的单选都需要是true
                if(status){
                  i.goods_status=true
                  // 若所有的都是false则都需要时false
                }
                else{
                  i.goods_status=false
                }
                // 保存本地数据
                uni.setStorageSync('item',this.itemList)
            })
          },
    

    在这里插入图片描述

    实现点击单选和全选的时候显示总价

    使用方法:array.forEach()

    对于总价,遍历数组的时候进行判断,若此时的状态是false,那么就跳过,如果是true那么就是总数相加

     // 计算总价
          addNum(){
                var result=0
                // 遍历数组
              if(this.itemList){
                  this.itemList.forEach(i=>{
                  // 如遍历到当前状态是false,直接return
                   if(i.goods_status===false){
                     return
                   }
                  //  状态为true直接进行计算,获取总价
                    result=result+(i.goods_price*i.goods_number )
    
                })
              }
            return result
            }
    

    有余力可以使用array.reduce进行尝试
    在这里插入图片描述

    确定加入商品的数量

    使用方法:array.filter()

    使用计算属性获取到计算的数量,ruo当前选中的状态是true则我们可以还是用filter返回一个数组,根据数组的长度来进行判断

     // 获取选中的个数
          checkNum(){
            // 获取选中的个数
            if(this.itemList){
              return this.itemList.filter(i=>{
             return i.goods_status===true
            })
           }
    
          },
    

    在这里插入图片描述

    点击数量进行增减

    将两个事件绑定在一个事件上面

     // 点击数量进行增减
          indecrease(id,index){
            // 若此时点击了减一
            if(id===-1){
              this.itemList[index].goods_number+=id
              if(this.itemList[index].goods_number<=1){
                this.itemList[index].goods_number=1
              }
            }
            if(id===1){
              this.itemList[index].goods_number+=id
              if(this.itemList[index].goods_number>=10){
                this.itemList[index].goods_number=10
              }
            }
            // 保存数据
            uni.setStorageSync('item',this.itemList)
          },
    

    此处传入两个参数,一个是1或者是-1,另一个是索引

    总结:

    数组的方法在是非常常用的,在平常的项目中可以自己总结哪些地方用到了这些方法,以及解决方法的思路.
    推荐参考:
    https://developer.mozilla.org/zh-CN/docs/Glossary/array
    项目地址:
    https://gitee.com/monhly/applets

    展开全文
  • 更多的时候,我们希望每当我们点击进入这个列表框的时候,它会默认选中我们上一次保存的值(不考虑Preferences控件,Preferences控件会自动保存我们选择的值),而不是每次进入后它都是停留一个项目上。...

    在项目当中,我们会经常使用到如下的单选列表框。



    更多的时候,我们希望每当我们点击进入这个列表框的时候,它会默认选中我们上一次保存的值(不考虑Preferences控件,Preferences控件会自动保存我们选择的值),而不是每次进入后它都是停留在第一个项目上。想要实现这个效果很简单,只要我们对AlertDialog.Builder的setSingleChoiceItems()方法做一些简单了解就可以。

    setSingleChoiceItems()有四个重载的方法:

    1、从资源文件中装载数据:
    public AlertDialog.BuildersetSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener)
    2、从数据集中装载数据
    public AlertDialog.BuildersetSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn, final OnClickListener listener)
    3、从字符串数组中装载数据
    public AlertDialog.BuildersetSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
    4、从ListAdapter对象中装载数据
    public AlertDialog.BuildersetSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener listener)


    我们只需要关注第二个参数:

    checkedItem:指定哪个项目被选中,默认为0表示选中第一个项目,-1表示没有项目被选中

    所以我们只需要先从保存的数据中得到原先的序号,将此序号作为checkedItem参数传入即可。




    展开全文
  • 最近使用Angular框架做前端界面,需要根据索引去除数组中元素,此为背景: 示例如下: 使用arr.findIndex查找出元素在数组中得位置,保存在数组a_array, 其a_array = 【1,5】;原始数组arr = 【1,2,3,4,5,6...
  • 项目中需要根据商品分类动态生成一个若干个复选框列表,接着,根据列表的内容排列组合生成一个二维数组,最后,需要将二维数组显示表格。这里,定义二维数组的格式如下图所示: 如图所示,字典数据skuList...
  • 内容 + “|” ' 添加“|”是为了分开每组合框项目,读入配置后分割为文本型数组!  写配置项 (取运行目录 () + “\组合框存储.ini”, “组合框存储”, “组合框存储”, 组合框项目存储)  组合框1...
  • Matthew A. StoeckerVisual Studio TeamMicrosoft Corporation 2002 年 1 月 ... 目录简介 前提 创建项目 实现集合 公开控件数组 创建公共事件处理程序 测试项目 总结 简介数组为使用共享公共功能的控件组提供了
  • 嵌套下拉列表框

    千次阅读 2013-09-03 22:26:47
    新建一个Android项目main.xml输入如下代码(注意要把我注释去掉,否则会报错):    android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="horizontal" > ...
  • R语言的对象(Objects)主要包括向量、矩阵、数组、数据列表。 R语言的对象有五种最基本的类型,即,字符型(character)、数值型(numeric,包括小数)、整型(integer)、复数型(complex)以及逻辑型...
  • 进入正题,我们都知道,自绘列表框其实就是绘制一个个收尾连接一起的矩形,然后矩形里填充各种数据,图标、标题、进度条...然后滚动显示就是把各个矩形向上或向下偏移 这样一个列表框就完成了。 不过这样绘制出来...
  • vb学习总结, 列表框  1、属性  1、columns  该属性用来确定列表的列数。当该属性设置为0(默认)是,所用的项目呈单列显示。...list属性保存列表框中所有值得数组,可以通过下标访问数组中的值(下标值从
  • 进入正题,我们都知道,自绘列表框其实就是绘制一个个收尾连接一起的矩形,然后矩形里填充各种数据,图标、标题、进度条...然后滚动显示就是把各个矩形向上或向下偏移 这样一个列表框就完成了。不过这样绘制出来...
  •  加入成员 (选择数组, 选择列表框1.取项目文本 (i - 1))  信息框 (选择列表框1.取项目文本 (i - 1), 0, ) 计次循环尾 () 3.连接数据库 a.启动窗口上添加odbC源(拖入就可以了) b.外部...
  • Win32字控件-列表框

    千次阅读 2013-09-28 12:25:47
    LBS_DISABLENOSCROLL 当列表框不包含足够的项目移动时,列表框中显示禁用垂直滚动条。如果没有此样式当列表框不包含足够的项目时,滚动条隐藏。 LBS_EXTENDEDSEL 使用shift键和鼠标或特定组合键,用户可以选择多项...
  • vb列表框ListBox的详细使用方法

    万次阅读 2008-11-28 10:50:00
     列表框的特点是:列表框中项目是通过程序插入到其中的,用户无法向清单输入数据,当选择其中的项目,并用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。下面这个例子充分说明了...
  • 本课首先录制了易语言组合渐变背景颜色,然后通过读写配置文件ini来实现组合加入项目,添加项目列表 视频链接: 77 组合读取写配置文件和列表项目视频教程源码: .版本 2 .程序集 窗口程序集_启动窗口...
  • 如何 Unity 制作一个道具系统

    千次阅读 2018-05-25 17:25:18
    原文:How to make a Power-Up System in Unity 作者:Kevin Small ...道具系统是一个关键的游戏组件,因为它们增加了额外的复杂性和策略层,来保持移动的动作。 本教程你将学会: 设计、...
  • 引用类型(数组常用方法)

    千次阅读 2018-10-16 18:15:22
    Javascript数组与其他语言的数组都是数据的有序列表,但是又与其他语言的数组有着很大的区别,举例子Java中数组里面只能存储相同的数据类型,而ECMAScript数组可以存储不同类型的数据。数组的大小也可以...
  • 项目地址 源码地址 预览地址(没有做响应式,请电脑上打开) 使用了我自制的日历组件(初学vue时做的,有些糙)calendar-input 任务描述 参考设计图 实现一个简易版的问卷...有一个表格用于展示所有已创建的...
  • 现在有一个新需求就是需要对一个列表,实现拖拽排序的功能,要实现的效果如下图: 可以通过 react-dnd 或者 react-beautiful-dnd 两种方式实现,今天先讲下使用react-dnd是如何实现的,github地址: ...
  • 【PB】使用 Win32 API 扩展下拉列表框

    千次阅读 2007-01-17 02:15:00
    获取/设置当前选项 要获取/设置下拉列表框的当前选项,通常是通过如下代码实现的:ddlb_example.FindItem(ddlb_example.Text, 0)ddlb_example.SelectItem("First Item", 0)当存在选项文本重复时,根本无法判断选择/...
  • 前面几篇文章,我们分享了使用Jquery EasyUI来进行ASP.NET项目的开发的相关方法,每一个模块都有其共用性,细细理解与掌握,我相信使用EasyUI进行开发还是相当方便的。 接下来我分享“组织机构管理”模块主要的...
  • ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯...
  • .NET 框架的格式和集合

    千次阅读 2006-01-13 21:01:00
    GUI 的位和字节使用不同语言时的危险Dr.GUI 最近有机会帮助位朋友解决了他初级 C 语言课程所遇到的编程问题。请不要介意,距离这位好心的博士使用 C 语言来编程,几乎已经隔了十年之久。(C 并不是“完全”...
  • 十九、项目:像素艺术编辑器 原文:Project: A Pixel Art Editor 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 我看着眼前的许多颜色。 ...
  • 这一讲我们将对如何实现新闻列表一个详细的介绍,新闻列表会把所有我们从网上获取的新闻的标题显示给用户,用户通过阅读标题,选择自己想要查看的新闻,进入具体的新闻显示页。 下图是我们设计的样式,最上方的...
  • 《利用 Python 进行数据分析 · 第 2 版》第 4 章 NumPy 基础:数组和矢量计算第 1 章 准备工作第 2 章 Python 语法基础,IPython 和 Jupyter第 3 章 Python 的数据结构、函数和文件第 4 章 NumPy 基础:数组和矢量...
  • 如何把数据保存到session

    千次阅读 2020-12-23 08:10:51
    算是新的知识,经过来同学的提示先把选中到的房间保存到session。让后再查询session的的数据。我当时疑问为什么要报存到session呢而不是直接报存到数据库呢。我就想为什么不能直接报存到数据呢?后来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,175
精华内容 22,070
关键字:

列表框中的项目保存在一个数组中