2013-12-09 2 views
0

데이터 테이블에 바인드 된 표준 DevExpress MVCxGridView가 있습니다. 첫 번째 열 "SS"가 데이터 키인 문자열 코드 인 부울 값입니다. 모든 열을 반복하고 gridview 열을 동적으로 만듭니다. 표시되는 표는 구성 할 수있는 옵션 인 체크 상자입니다.DevExpress MVC gridview 셀에 data- * 속성 추가

jquery js 파일에는 필요한 기능을 주입하기 위해이 셀에 대해 data- * 속성을 설정해야합니다. 각 TD 셀에 "data- *"속성을 추가하는 방법을 알고 싶습니다. "data-ss"는 첫 번째 열의 데이터 키이고 "data-wm"은 열의 작업 모드입니다.

@model System.Data.DataTable 
@{ 
    var gv = Html.DevExpress().GridView(
     settings => 
     { 
      settings.Name = "gv"; 
      settings.Enabled = true; 
      settings.KeyFieldName = "SS"; 
      settings.CallbackRouteValues = new { Controller = "Test", Action = "DataBindingPartial" }; 
      settings.Settings.HorizontalScrollBarMode = ScrollBarMode.Auto; 
      settings.Settings.VerticalScrollBarMode = ScrollBarMode.Auto; 
      settings.Settings.VerticalScrollableHeight = 200; 
      settings.SettingsPager.Mode = DevExpress.Web.ASPxGridView.GridViewPagerMode.ShowAllRecords; 

      MVCxGridViewBandColumn currentBand = null; 

      foreach (System.Data.DataColumn c in Model.Columns) 
      { 
       if (c.ColumnName == "SS") 
       { 
        DevExpress.Web.ASPxGridView.GridViewColumn column = settings.Columns.Add(c.ColumnName); 
        column.Caption = "SS"; 
        column.CellStyle.CssClass = "ss_head"; 
        column.HeaderStyle.CssClass = "ss_head_caption"; 
        column.HeaderStyle.Cursor = "pointer"; 
       } 
       else 
       { 
        // Get Column Definition retreives information based on the column name 
        // definition.ActivityType = "act" if activity or "dg" if DataGathering 
        // definition.WorkMode = abbreviated name of activity 
        // definition.Description = long description of activity 
        var definition = 
         TestModel.DefinitionColumn.GetColumnDefinition(c.ColumnName); 

        if (currentBand == null || currentBand.Name != definition.ActivityType) 
        { 
         currentBand = settings.Columns.AddBand(); 

         currentBand.Name = definition.ActivityType; 
         currentBand.Caption = definition.ActivityType == "act" ? "Activity" : "Data Gathering"; 
         currentBand.HeaderStyle.CssClass = String.Format("workmode_col workmode_{0}", definition.ActivityType); 
        } 
        DevExpress.Web.ASPxGridView.GridViewColumn column =      
          currentBand.Columns.Add(c.ColumnName, MVCxGridViewColumnType.CheckBox); 
        column.Caption = definition.WorkMode; 
        column.ToolTip = definition.Description; 
        column.Visible = true; 
        column.HeaderStyle.Cursor = "pointer"; 
        column.CellStyle.CssClass = String.Format("workmode_{0} workmode_selectable workmode_col", definition.ActivityType); 
        column.HeaderStyle.CssClass = String.Format("workmode_{0} workmode_col", definition.ActivityType); 
        column.Width = 35; 
       } 
      } 
     }); 
    var gvBound = gv.Bind(Model); 
    gvBound.Render(); 
} 

당신에게 미하일 감사합니다 다음과 같이

내 면도기보기 코드입니다. 내가 * 데이터 -를 설정하는 설정 구성을 추가 할 수 있었다이 사용

속성 :

 settings.HtmlDataCellPrepared = (sender, e) => 
     { 
      e.Cell.Attributes.Add(
       "data-wm", 
       e.DataColumn.Caption 
      ); 
      e.Cell.Attributes.Add(
       "data-ssco", 
       e.KeyValue.ToString() 
      ); 
     }; 
+0

DevExpress 지원팀에 직접 문의 하시겠습니까? – Mikhail

답변

1

필요한 속성을 지정 이벤트를 GridViewSettings.HtmlDataCellPrepared 사용할 수 있습니다. this SO 스레드를 확인하십시오.

관련 문제