2009-03-20 9 views
2

나는 행 색상이 번갈아 Gridview를 가지며 해당 행의 아무 곳이나 클릭했을 때 행을 강조 표시하려고합니다. 유감스럽게도, 내가 찾은 코드는 이전에 클릭 한 행에 어두운 색조를 적용합니다. 예를 들어 4 열 그리드 뷰에서 벗어난 경우 2와 4는 회색으로 표시되고 나머지 2는 흰색입니다. 행 1을 클릭 한 다음 행 4를 클릭하면 행 1이 음영 처리됩니다. 다른 행을 클릭하면 이런 일이 발생합니다. 여기 내 코드 :컬러 행을 교대로 전체 행 선택 gridview

protected void CCAGridView_OnRowCreated(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
      e.Row.Attributes.Add("onclick", "HilightRow(this)"); 
    } 

<asp:GridView ID="GridView" runat="server" HeaderStyle-Width="200" HeaderStyle-BackColor="#2B6292" HeaderStyle-ForeColor="White" 
    AllowSorting="true" AllowPaging="true" Width="600" AutoGenerateColumns="False" OnRowCreated="GridView_OnRowCreated" 
    DataKeyNames="Id" AlternatingRowStyle-BackColor="Silver" BorderColor="#2B6292" BorderWidth="1" BorderStyle="solid"> 
     <Columns> 
     ... 
     </Columns> 
    </asp:GridView> 

도움이 되길 바랍니다. 감사.

또한 누구나 서버 쪽에서 어떤 행이 강조되어 있는지 찾을 수 있습니까? 선택과 같습니다.

+0

여기에 어떤 환경 (자바, 델피, 자바 스크립트, ??)을 추가해야합니다. 나는 당신의 질문에 태그를 다시 붙였다. –

+0

HilightRow 자바 스크립트 기능을위한 코드를 게시 할 수 있습니까? –

답변

0

글쎄, 기본 키를 알고 있다고 가정하고 선택한 행을 찾는 방법을 도울 수 있습니다. RowDataBound 이벤트에서 DataItem을 가져 와서 (실제 형식으로 변환 한 다음) 찾고있는 값과 비교 (강조 표시) 할 수 있습니다. 이 작업을하려면 alternatingRowSTyle을 꺼야했습니다. 그것에 대해 많이 알지 마십시오.

보호 된 무효 Page_Load (개체 보낸 사람, EventArgs 전자) { GridViewCompany.AlternatingRowStyle.Reset(); GridViewCompany.SelectedRowStyle.Reset(); }

protected void GridViewCompany_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     int selectedCompanId = Convert.ToInt32(StateService.I.Get(CookieIdType.CompanySelected)); 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      var userResult = e.Row.DataItem as CompanyResult; 
      if (userResult != null) 
      { 
       if (userResult.Id == selectedCompanId) 
       { 
        e.Row.BackColor = Color.LightGray; 
       } 
      } 
     } 
    }