2016-06-05 7 views
0

내가 할 수 있기를 원하는 버튼이 모두 사용자 컨트롤을 사용하도록 설정되어있는 경우 각 버튼을 차례대로 말해야합니다. 그렇지 않으면 공개 enumProperty를 사용하여 나를 허용하고 있습니다. 어떤 버튼을 dertmin.속성을 통해 버튼의 활성화 상태를 설정하는 방법

public enum iandENUM 
    { 
     Personal =0, 
     Property = 1, 
     iande = 2, 
     Vechiles = 3 
    } 

public iandENUM actvieButton { get; set; } 



<telerik:RadButton ID="rbPersonalDetails" runat="server" CssClass="btn btn-info" Text="Property Details"> 

       <ContentTemplate> 
        <i class="fa fa-user" style="color: #5bc0de;"></i>Personal Details 
       </ContentTemplate> 

      </telerik:RadButton> 
      <telerik:RadButton ID="rbPropertyDetails" runat="server" CssClass="btn btn-info" Text="Property Details" DisabledButtonCssClass="btn btn-default"> 

       <ContentTemplate> 
        <i class="fa fa-home" style="color: #5bc0de;"></i>Property Details 
       </ContentTemplate> 

      </telerik:RadButton> 
      <telerik:RadButton ID="rbVechicleDetails" runat="server" CssClass="btn btn-info" DisabledButtonCssClass="btn btn-default" btn-defaultText="Vechicle Details"> 

       <ContentTemplate> 
        <i class="fa fa-car" style="color: #5bc0de;"></i>Vechicle Details 
       </ContentTemplate> 

      </telerik:RadButton> 

      <telerik:RadButton ID="rbincomee" runat="server" CssClass="btn btn-info" DisabledButtonCssClass="btn btn-default"> 

       <ContentTemplate> 
        <i class="fa fa-gbp" style="color: #5bc0de;"></i>Income & Expenditures 
       </ContentTemplate> 

      </telerik:RadButton> 



      <telerik:RadButton ID="rbPensions" runat="server" CssClass="btn btn-info" DisabledButtonCssClass="btn btn-default"> 

       <ContentTemplate> 
        <i class="fa fa-bank" style="color: #5bc0de;"></i>Pensions 
       </ContentTemplate> 

      </telerik:RadButton> 

      <telerik:RadButton ID="rbMeetings" runat="server" CssClass="btn btn-info" DisabledButtonCssClass="btn btn-default"> 

       <ContentTemplate> 
        <i class="fa fa-calendar" style="color: #5bc0de;"></i>Meetings 
       </ContentTemplate> 

      </telerik:RadButton> 

      <telerik:RadButton ID="rbOtherAssets" runat="server" CssClass="btn btn-info" DisabledButtonCssClass="btn btn-default"> 

       <ContentTemplate> 
        <i class="fa fa-share" style="color: #5bc0de;"></i>Other Assets 
       </ContentTemplate> 

      </telerik:RadButton> 

이 내 주요 질문 뒤에 클래스 코드는 어쩌면 그것이 내가 iandeEnum

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(actvieButton==casesToolbar.iandENUM.Personal) 
     { 




     } 
    } 

    private bool _enabledState; 
    public bool EnabledState 
    { 
     get { return _enabledState; } 
     set { 

      rbMeetings.Enabled = _enabledState; 
      rbOtherAssets.Enabled = _enabledState; 
      rbPensions.Enabled = _enabledState; 
      rbPropertyDetails.Enabled = _enabledState; 
      rbVechicleDetails.Enabled = _enabledState; 
      rbincomee.Enabled = _enabledState; 
      } 
    } 

    public enum iandENUM 
    { 
     Personal =0, 
     Property = 1, 
     iande = 2, 
     Vechiles = 3 
    } 

    public iandENUM actvieButton { get; set; } 
    public void disableSectionsTillSave(Boolean isEnabled) 
    { 

     try 
     { 
      rbMeetings.Enabled = isEnabled; 
      rbOtherAssets.Enabled = isEnabled; 
      rbPensions.Enabled = isEnabled; 
      rbPropertyDetails.Enabled = isEnabled; 
      rbVechicleDetails.Enabled = isEnabled; 
      rbincomee.Enabled = isEnabled; 
     } 
     catch (Exception ex) 

     { 
      string inner = string.Empty; 
      if (ex.InnerException != null) 
      { 
       inner = ex.InnerException.ToString(); 
      } 
      logger.Error("Error in disableSectionsTillSave function edit modules cases " + ex.ToString() + " " + inner); 

     } 


    } 

답변

0

사용자는 ActiveButton 속성의 값이 변경되는 적절한 버튼 (들)을 활성화 할 수

public enum MyEnum 
{ 
    Val1, 
    Val2, 
    Val3 
} 

private MyEnum m_ActiveButton = MyEnum.Val1; 

public MyEnum ActiveButton 
{ 
    get 
    { 
     return m_ActiveButton; 
    } 

    set 
    { 
     m_ActiveButton= value; 

     btn1.Enabled = false; 
     btn2.Enabled = false; 
     btn3.Enabled = false; 

     switch (value) 
     { 
      case MyEnum.Val1: 
      { 
       btn1.Enabled = true; 
       break; 
      } 

      case MyEnum.Val2: 
      { 
       btn2.Enabled = true; 
       break; 
      } 

      case MyEnum.Val3: 
      { 
       btn3.Enabled = true; 
       break; 
      } 
     } 
    } 
} 

속성은 또한 초기 상태로 설정하기 위해, 마크 업에서 사용될 수있다 :

<userCtl:WebCtl1 runat="server" ActiveButton="Val3" /> 
0

에 따라 활성 버튼을 설정할 수 있도록 내가 속성 값을 줄 것이다 어떻게 그냥 날하지만, 재산 사용에 대한 오해가 있습니다. 여기서 실수는 setter에서 속성 값을 설정하지 않는다는 것입니다. 당신은 속성의 필드에 액세스해야하는 경우, 당신은이처럼 쓰기 속성 :

private bool _enabledState; 
public bool EnabledState 
{ 
    get { return _enabledState; } 
    set { _enabledState = value; } 
} 

그러나이 지금 선언하고 속성을 사용하는 구식 방법이다. 더 나은 방법은 저점 소위 자동 속성입니다 : - 즉 EnabledState -

public bool EnabledState { get; set; } 

자체를 속성에 액세스하여 속성 값에 액세스 할 수 있습니다 나중에 당신이 MSDN article

에 속성에 대한 자세한 읽기 대신 속성 백업의 필드 -이 경우 _enabledProperty입니다.

 rbMeetings.Enabled = EnabledState; 
     rbOtherAssets.Enabled = EnabledState; 
     rbPensions.Enabled = EnabledState; 
     rbPropertyDetails.Enabled = EnabledState; 
     rbVechicleDetails.Enabled = EnabledState; 
     rbincomee.Enabled = EnabledState; 

불행하게도 내가 당신에게 EnabledState없이을 확인하는시기와 방법에 대한 조언을 줄 수 없습니다

당신은 그들의 Enabled 속성에 EnabledState을 할당하여, 코드에서 다른 곳, 버튼의 활성화 상태를 설정 비즈니스 로직에 대한 자세한 정보. 버튼을 설정하기 전에 반드시 발생해야합니다. 한 가지 방법은 로직을 실행하여 EnabledStatePage_Load, 그 다음 Page_PreRender을 설정하는 것입니다.

+0

안녕하세요 boz 네, 저것을 보았습니다. 내 오류를 보았습니다.하지만 내가 원하는 것은 enum이 가야 할 가장 좋은 방법이라고 생각한 이유를 제게 알리면 모든 버튼에 대한 개별 속성입니다. – rogue39nin

+0

미안하지만, 당신을 얻지 못합니다. 각 버튼에 대한 속성을 원한다는 의미입니까? "예"인 경우 - 이미 가지고 있습니다. 각 버튼에는 'Enabled' 속성이 있습니다. 그냥 사용하십시오. –