2009-10-07 2 views
0

Я использую C# .NETЕсли оператор с использованием класса в ретранслятор

У меня есть ретранслятор и ObjectDataSource (ObjectDataSource создается в коде позади).

Внутри репитера находятся две кнопки (править/удалять). Мне нужно, чтобы система скрывала/удаляла эти кнопки, если у пользователя нет прав на редактирование/удаление.

Repeater код

   <ItemTemplate> 
        <tr class="tRow left"> 
        <td>      
         <asp:Button ID="editClick" OnCommand="EditClick" runat="server" Text="Edit" /> 
         <asp:Button ID="deleteClick" OnCommand="DeleteClick" runat="server" Text="Delete/Cancel" /> 
        </td> 
        <td><%#Eval("bookingID")%></td> 
        </tr> 
     </ItemTemplate> 

Я думал, что я мог бы добавить, если заявление в повторитель однако userRepository класс, и я не хочу, чтобы получать доступ к классу в моем исходном коде. Есть ли другой способ сделать это?

  <ItemTemplate> 
       <tr class="tRow left"> 
       <td>      
        <%if (!userRepository.GetPermission("xxxxx")) 
        {%> 
        <asp:Button ID="editClick" OnCommand="EditClick" runat="server" Text="Edit" /> 
        <asp:Button ID="deleteClick" OnCommand="DeleteClick" runat="server" Text="Delete/Cancel" /> 
       <%}%> 
       </td> 
       <td><%#Eval("bookingID")%></td> 

Заранее спасибо за любую помощь.

Clare

ответ

3

Чтобы обметать вещи в файле ASPX можно добавить свойство, например, это код-за:

public bool HasEditPermission 
{ 
    get { return !userRepository.GetPermission("xxxxx"); } 
} 

затем на странице ASPX вы можете сделать:

<ItemTemplate> 
    <tr class="tRow left"> 
    <td>      
     <asp:Button ID="editClick" Enabled="<%#HasEditPermission%>" OnCommand="EditClick" runat="server" Text="Edit" /> 
     <asp:Button ID="deleteClick" Enabled="<%#HasEditPermission%>" OnCommand="DeleteClick" runat="server" Text="Delete/Cancel" /> 
    </td> 
    ....