Janus 4 GridEx禁用行

时间:2012-10-27 11:58:14

标签: vb.net janus gridex

我有一个Janus 4 GridEx控件,其中包含一个复选框列。 我需要能够根据特定列的值禁用某些行(即使它们不可选择/变灰)。网格的数据是从数据库加载的。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您必须使用Janus Grid的LoadingRowSelectionChanged事件。

这是一个示例代码:(这里我要检查特定列的值除以2)

    private void grdEx_LoadingRow(object sender, Janus.Windows.GridEX.RowLoadEventArgs e)
    {
        if (Convert.ToInt32(e.Row.Cells["ID"].Value) % 2 == 0)
        {
            e.Row.RowStyle = new GridEXFormatStyle(e.Row.Table.RowFormatStyle);
            e.Row.RowStyle.BackColor = Color.Gray;
        }
    }

    private void grdEx_SelectionChanged(object sender, EventArgs e)
    {
        if (Convert.ToInt32(grdEx.GetValue("ID")) % 2 == 0)
        {
            if (grdEx.Row >= 0)
            {
                if (grdEx.Row == grdEx.RowCount - 1)
                    grdEx.Row = grdEx.Row - 1;
                else
                    grdEx.Row = grdEx.Row + 1;
            }
        }
    }

答案 1 :(得分:0)

根据Checkbox列,只需查看示例代码:

 private void grdEX1_FormattingRow(object sender, RowLoadEventArgs e)
 {
        if (e.Row.RowIndex > -1 && e.Row.RowIndex < grdEX1.RowCount)
        {
            for (int i = 0; i < grdEX1.RootTable.Columns.Count; i++)
            {
                if (!Convert.ToBoolean(e.Row.Cells["checkboxCol"].Value))//checked So editable
                {
                    e.Row.Cells[i].FormatStyle = new GridEXFormatStyle() { BackColor = Color.LightGray };
                }
                else
                {
                    e.Row.Cells[i].FormatStyle = null;
                }
            }
        }
    }

如果未选中该行,则阻止编辑:

private void grdEX1_EditingCell(object sender, EditingCellEventArgs e)
{
     if(!Convert.ToBoolean(grdEX1.GetValue("checkboxCol"))) //not checked 
    {
        e.Cancel = true;
        return;
    }
}