2012-04-26 2 views
1

У меня есть одна сетка с флажком. Иногда, когда вы выбираете строку и нажимаете кнопку ADD, это не работает, и отладчик показывает мне, что не выбрал строку. Это код:Ошибка ASPxGridView с флажком

protected void GridView_CustomCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs e) 
    { 
     ASPxGridView grid = sender as ASPxGridView; 
     List<object> ids = grid.GetSelectedFieldValues("ID"); 
     if (ids.Count > 0) 
     { ......... } 
} 
SelectAllCheckbox _SelectAll; 
    if (!(MyGV.Columns[0] is GridViewCommandColumn)) 
     { 
      _SelectAll = new SelectAllCheckbox() { GridClientInstanceName = MyGV.ClientInstanceName }; 
      Common.AddCommandColumn(MyGV, 0, _SelectAll); 
     } 

ответ

1

Надеется, что это помогает. Здесь используется событие RowDataBound.

private string chkGridColHeaderId = string.Empty; 

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      CheckBox chkAll = (CheckBox)e.Row.FindControl("chkSelectAll"); 
      chkAll.Attributes.Add("onclick", "SelectAll(this.checked)"); 
      chkGridColHeaderId = chkAll.ClientID; 

     } 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      CheckBox chkSelect = (CheckBox)e.Row.FindControl("chkSelect"); 

      chkSelect.Attributes.Add("onclick", "if(!this.checked)document.getElementById('" + chkGridColHeaderId + "').checked = false;"); 
     } 

    } 
+0

Спасибо, но это не поможет, потому что я использовал dxwgv: ASPxGridView ... –