在列中显示javascript函数的结果

Display result of javascript function in column

本文关键字:函数 结果 javascript 显示      更新时间:2023-09-26

我正试图在一列中显示以下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 %>" />

尝试

txtRestrictionCodeID.toString();

您没有调用函数,所以分配给Rcode的是函数,而不是函数的结果。

@Esailija提供的答案是正确的,您只需要调用.toString()而不是.toString

我想指出你的技术可能忽略了另一个[安全?]问题。您正试图格式化一个值[RestrictionCode]以使其对用户模糊,但该值在未模糊的客户端仍然可用,只是不可见。

只要在Firebug等浏览器工具中运行一点JavaScript,用户就可以在浏览器中检索任何(和所有)数据存储值,并以纯文本形式查看它们。

最好在服务器端格式化RestrictionCode值,并且永远不要将未格式化的值发送到客户端。

如果您仍然需要客户端的值,为了传递回服务器端。。。在发送到客户端之前,首先在服务器端加密该值,然后在客户端/服务器之间来回传递加密后的值。服务器可以解密该值,而客户端只看到一些加密的字符串值,而他们不能(不应该)解密这些值。

希望这能有所帮助。