在列中显示javascript函数的结果

时间:2012-01-23 21:12:12

标签: javascript asp.net ext.net

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

2 个答案:

答案 0 :(得分:2)

尝试

txtRestrictionCodeID.toString();

您没有调用该函数,因此分配给Rcode的是函数而不是 功能的结果。

答案 1 :(得分:1)

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

我想指出您可能会忽略的另一个[安全?]问题。您正在尝试格式化值[RestrictionCode]以便从您的用户对其进行模糊处理,但该值仍然是未经模糊处理的客户端,只是不可见。

在Firebug等浏览器工具中运行一点JavaScript,用户可以在浏览器中检索任何(和所有)数据Store值并以纯文本格式查看。

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

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

希望这有帮助。