2012-09-12 2 views
0

리피터 컨트롤을 사용하고 있습니다. 내 항목 속성 중 하나는 부울입니다. 내가 같은, 내가 텍스트 속성에 조건문을 수행 할 수 있습니다 알고 : 그러나CssClass 속성에서 조건문을 수행 할 수 있습니까?

Text='<%# Item.Boolean ? "Text 1" : "Text 2" %> 

, 내가 다른 CSS 스타일 부울에 따라 동일한 텍스트 만 원한다면?

다음과 같은 코드가 가능합니까?

CssClass=<%# Item.Boolean ? "CssClass1" : "CssClass2" %> 
+2

당신이 ... 그것을 시도? – Rawling

+0

저는 직장에 없기 때문에 지금 비주얼 스튜디오에 입장 할 수 없습니다. 나는 단지 궁금하다. – proseidon

+0

아, 그 정도면 충분합니다. 이 경우 : 네가 정상적으로 작동해야합니다. 단지 다른 'String' 속성입니다.하지만 텍스트 예제처럼 동일한 작은 따옴표를 사용해야 할 수도 있습니다. – Rawling

답변

0

이렇게하면 안됩니다. runat 서버 유형의 태그가 아니므로 논리를 실행하려고 시도 할 수 없습니다. 대신, Page_PreRenderComplete에서 gridview의 속성을 설정해야합니다. 는 IT를 할 다음과 같은

사용 무언가 : 스타일 시트에

protected void Page_PreRenderComplete(object sender, EventArgs e) 
{ 
    this.FormatGridviewRows(); 
} 

private void FormatGridviewRows() 
{ 
    foreach (GridViewRow row in this.GridView1.Rows) 
    { 
     // Don't attempt changes on header/select/etc. Only Datarow 
     if (row.RowType != DataControlRowType.DataRow) continue; 

     // At least make sure everything has the default class 
     row.CssClass = "gridViewRow"; 

     // Don't affect the first row 
     if (row.DataItemIndex <= 0) continue; 

     if (row.RowState == DataControlRowState.Normal || row.RowState == (DataControlRowState.Normal^DataControlRowState.Edit)) 
     { 
      row.CssClass = !this.cbForceOverride.Checked 
       ? "gridViewRow" 
       : "gridViewRow gridViewRowDisabled"; 
     } 

     if (row.RowState == DataControlRowState.Alternate || row.RowState == (DataControlRowState.Alternate^DataControlRowState.Edit)) 
     { 
      row.CssClass = !this.cbForceOverride.Checked 
       ? "gridViewAltRow" 
       : "gridViewAltRow gridViewAltRowDisabled"; 
     } 
    } 

} 

다음 :

.gridViewRow { 
    background-color: #f2f2f2; 
} 

.gridViewAltRow { 
    background-color: #ffffff; 
} 

.gridViewRow, .gridViewAltRow { 
    color: #000000; 
} 

.gridViewRowDisabled, .gridViewAltRowDisabled { 
    color: #DDDDDD; 
} 
관련 문제