如何在KendoGrid模板函数中正确传递RuleName字段值?
解决KendoGrid模板中传递字段实际值给函数的问题
我之前也踩过这个KendoGrid模板语法的坑!你现在的写法问题在于,直接把ruleRadioActive(<MyValueHere>)写在template里时,代码会在Grid初始化阶段就执行这个函数,而不是在每行渲染时传入当前行的实际字段值。而且用"#= RuleName #"的方式其实是把字符串"#= RuleName #"直接传进去了,没有触发Kendo的模板解析。
正确的做法是把整个函数调用包裹在Kendo的模板输出语法里,让Grid在渲染每行时动态解析并传入实际值:
{ field: "RuleName", template: "#= ruleRadioActive(RuleName) #", title: global.textJSPartialView["RuleName"], headerTemplate: "bla bla" }
关键说明:
#= ... #是Kendo的无转义输出语法,它会解析当前行数据中的RuleName字段,把实际值作为参数传给ruleRadioActive函数,而不是传字符串"RuleName"。- 要确保
ruleRadioActive函数在KendoGrid初始化之前就已经定义完成,不然会出现"函数未定义"的报错。 - 如果你的函数需要返回HTML内容(比如生成单选按钮),直接返回字符串格式的HTML即可,
#=会直接渲染这些内容。
举个实际的函数示例,方便你理解:
// 假设你的ruleRadioActive函数是用来生成单选按钮的 function ruleRadioActive(ruleName) { // 根据传入的实际RuleName值生成对应的HTML return `<label><input type="radio" name="activeRule" value="${ruleName}"> ${ruleName}</label>`; }
这样配置后,Grid每行渲染时都会调用ruleRadioActive,并传入当前行的RuleName实际值,完美解决你遇到的问题!
内容的提问来源于stack exchange,提问作者user12322172
相关产品推荐
相关产品推荐

