2011-07-27 42 views
0

我有一个名为ProductName的字段,其中包含特定的产品名称。登录后,任何用户都可以通过点击文本并点击保存来更新产品名称。Javascript field only editable only to admins

代码来自http://www.appelsiini.net/projects/jeditable,因为这是可能的。

我在ASP.net VB中为管理员和非管理员设置了角色,并且想知道是否有任何方式在Javascript中声明只允许管理员编辑该字段。

这是可编辑字段中的Javascript代码:

$('.productName.edit').editable(function (value, settings) { 
    var ProductID = $('input#body_ProductID').val(); 
    var result = SubmitProductName(ProductID, value); 
    return (value); 
}, { 
    width: '350', 
    submit: 'Save Changes', 
    cancel: 'Cancel', 
    onBlur: 'ignore' 
}); 

这里是场本身的ASP:

<asp:FormView ID="fvProduct" runat="server" DataSourceID="dsProduct"> 
     <ItemTemplate> 
      <h1 class="productName edit"><%# Eval("ProductName")%></h1> 
     </ItemTemplate> 
    </asp:FormView> 

我真的很感激任何帮助。谢谢。

回答

0

你可以在javascript中做到这一点,但这将绕过任何人禁用/黑客JavaScript(这是非常容易实现)。你应该在服务器端做到这一点。

如果你真的想在JavaScript中做到这一点,只需通过ajax调用来检查权限。

+0

我问过如何在Javascript中执行此操作的唯一原因是我无法在ASP中找到它。我尝试使用下面的代码,但它不会工作...它只是说不支持项目模板 <%#的eval( “产品名称”)%> Jamie

0

你应该在服务器端做到这一点,但如果你想在客户端做到这一点,那么当用户登录时,你可以存储一个cookie,记录他是否是管理员或nonadmin.Now当某人试图编辑字段检查您存储的cookie是否表示他是管理员。如果他是管理员,则允许编辑,否则不。

+0

这可能会更容易在ASP中完成,因为我设置了角色,但我无法弄清楚如何使它工作。它只是说不支持的项目。 <的ContentTemplate> 的 <%#的eval( “产品名称”)%> Jamie

+0

@Jamie我不熟悉与ASP或VB .net,但正如你所说,你必须通过javascript区分管理员和非管理员,这是我认为你可以做的。 – lovesh

+0

这是一个好主意,我不确定如何使用cookie,因此我现在正在阅读关于它们的信息。 :) – Jamie