我试图在列中显示以下javascript函数的结果,使用renderer属性来引用该函数但是没有看到结果...不确定我缺少什么。尝试使用列渲染器属性和记录字段转换属性
该函数的目的是屏蔽限制代码列中的值,例如1234变为12 **
以下是摘录。提前感谢任何想法。
<script type="text/javascript">
var start = function RenderRC(value) {
if (value.toString.length > 2) {
var value = value.substr(0, 2) + Array(value.length - 2 + 1).join("*");
return value;
}
};
</script>
<Fields>
<ext:RecordField Name="RestrictionCode" />
</Fields>
<ext:Column Header="<%$ Resources:Text,RestrictionCode %>" DataIndex="RestrictionCode" Fixed="true" Width="200" align="Center">
<Renderer Fn="start" />
</ext:Column>
<LoadMask ShowMask="true" Msg="<%$ Resources:Text, RetrievingUsers %>" />
答案 0 :(得分:2)
尝试
txtRestrictionCodeID.toString();
您没有调用该函数,因此分配给Rcode
的是函数而不是
功能的结果。
答案 1 :(得分:1)
@Esailija提供的答案是正确的,您只需拨打.toString()
而不是.toString
。
我想指出您可能会忽略的另一个[安全?]问题。您正在尝试格式化值[RestrictionCode
]以便从您的用户对其进行模糊处理,但该值仍然是未经模糊处理的客户端,只是不可见。
在Firebug等浏览器工具中运行一点JavaScript,用户可以在浏览器中检索任何(和所有)数据Store值并以纯文本格式查看。
最好格式化RestrictionCode
值服务器端,并且永远不要将未格式化的值发送到客户端。
如果你仍然需要客户端的值,为了传回服务器端...首先在发送到客户端之前加密服务器端的值,然后只传递加密值 - - 在客户端/服务器之间。服务器可以解密该值,客户端只看到一些加密的字符串值,他们不能(不应该)解密。
希望这有帮助。