1  @(Html.Kendo().DropDownList()
 2                   .Name(Guid.NewGuid().ToString("N"))
 3                   .ValueTemplate("<span data-type='#:FieldType #' data-apipath='#:FkApiPath #' data-BFk='#:BFk #'>#:Text#<span>")
 4                   .OptionLabel(new { Text = "please select", Value = "", FieldType = "", FkApiPath = "", BFk = "" })
 5                   .DataTextField("Text")
 6                   .DataValueField("Value")
 7                   .HtmlAttributes(new { style = "width:100%", name = "Condition" })
 8                   .Filter("contains")
 9                   .Events(e =>
10                   {
11                       e.Select("onSelect"); //绑定事件
12                   })
13                   .BindTo(kp)
14                 )
View Code

Js:

  1 function onSelect(e,obj) {
  2     if (e.item) { 
  3         var dataItem = this.dataItem(e.item); //通过dataitem可获取到所有自定义的空间属性值
  4         var apiPath = dataItem.FkApiPath;
  5         var BFk = dataItem.BFk;
  6         // $(e.sender.span)选择完毕后显示的文本框span  
  7         //找到第三个文本框
  8         var OInput = $(e.sender.span).closest(".winter-condition-item").find("input[name = Result]");
  9         //根据自定义属性type 改变第三个下拉框的类型
 10         if ($.trim(dataItem.FieldType) !== "") {
 11             switch (dataItem.FieldType) {
 12                 case "nvarchar":
 13                 case "varchar": {
 14                     if ($.trim(apiPath) !== null && BFk) {
 15                         $.post("/ReceiptPlan/GetConditonFKData", { ApiPath: apiPath, BFk: BFk }, function (data) {
 16                             var postData = JSON.stringify(data.data);
 17                             OInput.kendoDropDownList({
 18                                 dataTextField: "Text",
 19                                 dataValueField: "Value",
 20                                 dataSource: JSON.parse(postData),
 21                                 ValueTemplate: "<span data-type='System.String'>#:Text#<span>",
 22                                 index: 0
 23                             });
 24                         });
 25 
 26                     } else {
 27                         if (OInput.data("role") === "dropdownlist") {
 28                             var drpl = OInput.data("kendoDropDownList");
 29                             drpl.destroy();
 30                             drpl.span.parent().next().removeAttr("class");
 31                             drpl.span.parent().next().removeAttr("style");
 32                             drpl.span.parent().next().attr("data-role", "");
 33                             var temp = drpl.span.parents(".form-group");
 34                             temp.empty();
 35                             temp.append('<input type="text" name="Result" data-type="System.String" value="" class="form-control tx-14" >');
 36                         } 
 37                     }
 38                         OInput.attr("type", "text");
 39                     OInput.attr("data-type", "System.String");                   
 40                 }
 41                     break;
 42                 case "date":
 43                 case "datetime":
 44                     {
 45                         if (OInput.data("role") === "dropdownlist") {
 46                             var drplss = OInput.data("kendoDropDownList");
 47                             drplss.destroy();
 48                             drplss.span.parent().next().removeAttr("class");
 49                             drplss.span.parent().next().removeAttr("style");
 50                             drplss.span.parent().next().attr("data-role", "");
 51                             var bbdd = drplss.span.parents(".form-group");
 52                             bbdd.empty();
 53                             bbdd.append('<input type="date" name="Result"  data-type="System.DateTime"  value="" class="form-control tx-14">');
 54                         } else {
 55                             OInput.attr("type", "date");
 56                             OInput.attr("data-type", "System.DateTime");
 57                         }
 58                     } break;
 59                 case "int":
 60                     {
 61                         if (OInput.data("role") === "dropdownlist") {
 62                             var drpls = OInput.data("kendoDropDownList");
 63                             drpls.destroy();
 64                             drpls.span.parent().next().removeAttr("class");
 65                             drpls.span.parent().next().removeAttr("style");
 66                             drpls.span.parent().next().attr("data-role", "");
 67                             var cc = $(drpl.span.parent().next()).addClass("form-control tx-14");
 68                             cc = $(drpl.span.parent().next()).attr("type", number);
 69                             cc = $(drpl.span.parent().next()).attr("data-type", "System.Int32");
 70                             var dd = drpl.span.parents(".form-group");
 71                             dd.empty();
 72                             dd.append(cc);
 73                         } else {
 74                             OInput.attr("type", "number");
 75                             OInput.attr("data-type", "System.Int32");
 76                         }
 77 
 78                     } break;
 79                 case "float":
 80                     {
 81                         if (OInput.data("role") === "dropdownlist") {
 82                             var drplsssssss = OInput.data("kendoDropDownList");
 83                             drplsssssss.destroy();
 84                             drplsssssss.span.parent().next().removeAttr("class");
 85                             drplsssssss.span.parent().next().removeAttr("style");
 86                             drplsssssss.span.parent().next().attr("data-role", "");
 87                             var ccc = $(drpl.span.parent().next()).addClass("form-control tx-14");
 88                             ccc = $(drpl.span.parent().next()).attr("type", number);
 89                             ccc = $(drpl.span.parent().next()).attr("data-type", "System.Double");
 90                             var ddd = drpl.span.parents(".form-group");
 91                             ddd.empty();
 92                             ddd.append(ccc);
 93                         } else {
 94                             OInput.attr("type", "number");
 95                             OInput.attr("data-type", "System.Double");
 96                         }
 97                     } break;
 98                 case "bit":
 99                     {
100                         if (OInput.data("role") === "dropdownlist") {
101                             var drplsss = OInput.data("kendoDropDownList");
102                             drplsss.destroy();
103                             drplsss.span.parent().next().removeAttr("class");
104                             drplsss.span.parent().next().removeAttr("style");
105                             drplsss.span.parent().next().attr("data-role", "");
106                             var cccc = $(drpl.span.parent().next()).addClass("form-control tx-14");
107                             cccc = $(drpl.span.parent().next()).attr("type", checkbox);
108                             cccc = $(drpl.span.parent().next()).attr("data-type", "System.Boolean");
109                             var dddd = drpl.span.parents(".form-group");
110                             dddd.empty();
111                             dddd.append(cccc);
112                         } else {
113                             OInput.attr("type", "checkbox");
114                             OInput.attr("data-type", "System.Boolean");
115                         }
116 
117                     }
118                     break;
119                 default:
120                     {
121                         if (OInput.data("role") === "dropdownlist") {
122                             var drplssse = OInput.data("kendoDropDownList");
123                             drplssse.destroy();
124                             drplssse.span.parent().next().removeAttr("class");
125                             drplssse.span.parent().next().removeAttr("style");
126                             drplssse.span.parent().next().attr("data-role", "");
127                             var ccccs = $(drpl.span.parent().next()).addClass("form-control tx-14");
128                             ccccs = $(drpl.span.parent().next()).attr("type", checkbox);
129                             ccccs = $(drpl.span.parent().next()).attr("data-type", "boolean");
130                             var dddds = drpl.span.parents(".form-group");
131                             dddds.empty();
132                             dddds.append(ccccs);
133                         } else {
134                             OInput.attr("type", "text");
135                             OInput.attr("data-type", "string");
136                         }
137                     }
138                     break;
139             }
140         } else {
141             if (OInput.data("role") === "dropdownlist") {
142                  drpl = OInput.data("kendoDropDownList");
143                 drpl.destroy();
144                 drpl.span.parent().next().removeAttr("class");
145                 drpl.span.parent().next().removeAttr("style");
146                 drpl.span.parent().next().attr("data-role", "");
147                  temp = drpl.span.parents(".form-group");
148                 temp.empty();
149                 temp.append('<input type="text" name="Result" value="" class="form-control tx-14" data-type="string">');
150             } else {
151                 OInput.attr("type", "text");
152                 OInput.attr("data-type", "string");
153             }
154         }
155         } else {
156             return;
157     }
158 }
View Code

 

 

 

 

交货日期是日期类型

 

 客户类型是一个外键  显示的是下拉框

 

posted on 2018-09-26 10:41  FL0528  阅读(93)  评论(0)    收藏  举报