2011-07-27 53 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