接触MVC也没多长时间,一开始学的时候绝得MVC结构比较清晰。后来入了门具体操作下来感觉MVC控件怎么这么少还不可以像ASP.net form那样拖拽。这样设计界面来,想我种以前没学过JS,Jquery搞起来据比较吃力了。因此自己一边学一边就积累一些自定义的控件,边用边学,用到哪学到哪!

  首先自定义的是可编辑的下拉框,自己在网上找了一些参考了一些别人用一个文本框和下拉框组合起来实现可编辑的下拉框。最终在不断的尝试下终于成功了,不过也遇到了很多的问题。具体的思路就是文本框+下拉框+写下拉框的onchange事件。本人也是初学者,有说的不对的或不妥的地方欢迎大家指正。共同努力共同进步!

废话不多说了,上前台代码():

<div style="position:relative">
        <span style="margin-left:132px;width:18px;overflow:hidden">
        <select id="s1" style="width:207px;margin-left:-132px;height:23px" onchange="selectChanged()" name="select1">
        <option value="请选择颜色" selected="selected">--请选择颜色--</option>
        @foreach (var color in ViewBag.DropListColor)
        {
            <option value="@color">@color</option>
        }
        </select>
        </span>
        <input type="text" name="color" id="color" style="width:183px;position:absolute;left:0px"/>
        </div>

注意代码的几个地方selectChanged()是一个事先写好的JS代码,当onchange被触发时取下拉框的值到文本框中。

@foreach (var color in ViewBag.DropListColor)
        {
            <option value="@color">@color</option>
        }

这个循环式绑定Controlor发过来的后台数据,注意文本框的name和id属性的值要和你模型属性字段一样,这样的好处是提交的数据会自动绑定到一个模型对象。不用你一一去去,省事多了。还有就是这样可以验证数据的有效性,也就是模型的有效性,可以过滤大多数无效数据。

辅助方法代码(主要参考了该博主的博文http://blog.csdn.net/jiajinhao/article/details/7908027):

string temp = "";
            foreach(string value in colloction)
            {
                temp+="<option value='"+value+"'>"+value+"</option>";
            }
            string str=String.Format("<span style='margin-left:132px;width:18px;overflow:hidden'>"
                                    +"<select id='s1' style='width:207px;margin-left:-132px;height:23px' onchange='selectChanged()' name='select1'>"
                                    +"<option value='{0}' selected='selected'>{1}</option>"
                                    +temp
                                    +"</select></span>"
                                    + "<input type='text' name='{2}' id='{2}'style='width:183px;position:absolute;left:0px'/>", optValue, text, attribute);
            return new MvcHtmlString(str);

需要注意的是一开始把下面这段代码,也放到了str字符串中。毫无疑问运行时抛出异常“不正确的字符串”,左该右改都不行。最后想出了上面的方法解决了问题。

foreach(string value in colloction)
            {
                temp+="<option value='"+value+"'>"+value+"</option>";
            }

当然可能有其他更好的方法,欢迎跟帖,大家一起学习一下。

文本框日历控件代码:

public static MvcHtmlString TextBoxCalender(string IdAndName)
        {
             string str = String.Format(@"<input type='text' id='{0}' name='{0}' style='width:207' onfocus='Calender()' />", IdAndName);
            return new MvcHtmlString(str);
        }

代码比较简单但是需要下载一个js或jQuery的日历控件,直接在文本框的onfocus事件调用就行了。目前就用到的组合控件就这两个,遇到了就解决问题。用到其他组合控件是在学了,书到用时方很少啊!本人也是初学者,有说的不对的或不妥的地方欢迎大家指正。共同努力共同进步!

最新文章

  1. js鼠标滚轮事件
  2. AutoCAD Civil 3D 中缓和曲线的定义
  3. asp.net core csrf
  4. Android标签云控件:TagCloudLinkView
  5. JS兼容IE浏览器的方法
  6. google学术反向代理及IPV6免流量上网【教育网BUPT】
  7. Model Thinking1
  8. 微信公众号菜单openid 点击菜单即可打开并登录微站
  9. Azure File Service in IIS
  10. Python核心编程笔记--动态属性
  11. Centos7-两台Centos机器间复制文件
  12. 2015-112 ado.net2
  13. SQL 快速生成不重复的卡号
  14. echarts各个配置项详细说明总结
  15. Leetcode刷题第003天
  16. 神奇的Content-Type--在JSON中玩转XXE攻击
  17. sublime text 3中browsersync的使用
  18. BZOJ 1084 最大子矩阵 dp
  19. 读《分布式一致性原理》JAVA客户端API操作3
  20. Asp.Net MVC中递归死循环问题

热门文章

  1. Beta版本冲刺第三天 12.9
  2. C#保存图片设置图片质量的方法
  3. 零散的JavaScript公用方法
  4. Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式及apr配置
  5. css3实现小黄人
  6. easyUI datagrid editor扩展dialog
  7. 仿照jquery封装一个自己的js库(一)
  8. WAMPSERVER 64位 win7下 php 5.5.12通过 PECL 安装 zip扩展
  9. JS获取当前对象大小以及屏幕分辨率等...
  10. Effective Objective-C 2.0 — 第10条:在既有类中使用关联对象存放自定义数据