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 )
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 }


交货日期是日期类型

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

浙公网安备 33010602011771号