2016-01-13 64 views
0

我有一个DataGridView,我正在填充如下所示。此DataGridView有7列,其中第1个,第4个&第6列分别将解除绑定,其余将绑定columns.Now我的要求是如何使用c#winforms显示绑定的DataGridView中的未绑定列

1]在列[0],我想显示一个自动增量整数值,如“序列号” 1,2,3 ..... n

2]在[4]列,我想显示图像列表中的图标/图像。

3]在列[6],我想说明的一个按钮控件

 try 
     { 
      using (FbConnection conLLV = new FbConnection(connectionString)) 
      { 
       conLLV.Open(); 
       using (FbCommand cmdLLV = new FbCommand(sqlQryLLV, conLLV)) 
       { 
        cmdLLV.Parameters.Add("@t_id", FbDbType.Integer).Value = tid; 
        cmdLLV.Parameters.Add("@mem_id", FbDbType.Integer).Value = mid; 
        cmdLLV.CommandType = CommandType.Text; 
        using (FbDataAdapter daLLV = new FbDataAdapter(cmdLLV)) 
        { 
         using (DataTable dtLLV = new DataTable()) 
         { 
          daLLV.Fill(dtLLV); 

          dgSSW.AutoGenerateColumns = false; 
          dgSSW.ColumnCount = 7; 

          //At Column[0] ->a Serial No column 

          dgSSW.Columns[1].Name = "subsec_name"; 
          dgSSW.Columns[1].HeaderText = "Sub Section Name"; 
          dgSSW.Columns[1].DataPropertyName = "subsec_name"; 

          dgSSW.Columns[2].Name = "rt_correct_ans"; 
          dgSSW.Columns[2].HeaderText = "Correct Answer"; 
          dgSSW.Columns[2].DataPropertyName = "rt_correct_ans"; 

          dgSSW.Columns[3].Name = "rt_your_ans"; 
          dgSSW.Columns[3].HeaderText = "Your Answer"; 
          dgSSW.Columns[3].DataPropertyName = "rt_your_ans"; 

          //At Column[4] ->an Image column 

          dgSSW.Columns[5].Name = "q_r_difficulty"; 
          dgSSW.Columns[5].HeaderText = "Difficulty Level"; 
          dgSSW.Columns[5].DataPropertyName = "q_r_difficulty"; 

          //At Column[6] ->a column having a Button control 

          dgSSW.DataSource = dtLLV; 
         }//data table closed and disposed here 
        }// data adapter closed and disposed up here 
       }// command disposed here 
      }//connection closed and disposed here 
     } 
     catch (FbException ex) 
     { 
      MessageBox.Show("LLV--" + ex.Message); 
     } 

我怎样才能达到我的要求,请告知使用codes.I已经搜查了互联网,但给出的解决方案不符合我的要求。

+0

之后哇!没有评论我的问题呢。 –

回答

1

可能的解决方案由以下步骤:

0]组数据源

dgSSW.DataSource = dtLLV; 

1]的行号:对于其添加列,并将细胞格式化

var col0 = new DataGridViewTextBoxColumn 
    { 
     HeaderText = "#", Name="RowNum", 
     ReadOnly = true, 
     Width = 10 
    }; 
dgSSW.Columns.Insert(0, col0); 

dgSSW.CellFormatting += GridCellFormatting; 

private void GridCellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dgSSW.Columns[e.ColumnIndex].Name == "RowNum") 
    { 
     e.Value = (e.RowIndex + 1).ToString(); 
    } 
} 

2]图像柱:

var col3 = new DataGridViewImageColumn { HeaderText = "Pic", Name = "Pic" }; 
dgSSW.Columns.Insert(4, col3); 

// set image for a cell 
dgSSW["Pic", 0].Value = Resources.add; 

3]键柱与点击处理

var col7 = new DataGridViewButtonColumn 
    { 
     HeaderText = "Proceed", Name = "Action", 
     Text = "+", 
     UseColumnTextForButtonValue = true 
    }; 
dgSSW.Columns.Add(col7); 

dgSSW.CellContentClick += GridCellContentClick; 

private void GridCellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (dgSSW.Columns[e.ColumnIndex].Name == "Action") 
    { 
     MessageBox.Show((e.RowIndex + 1).ToString()); 
    } 
} 

更新:既然你不使用AutoGenerateColumns和手动创建的所有列,您可以创建所有COL0,COL3,COL7并设置DataSource

+0

好,谢谢您的回复@ Ash.I将实现你的suggestions.But我有问题,虽然,怎么样绑定列中的数据?我应该像现在一样离开他们吗? –

+0

@gomeshmunda,是的,他们将工作 – ASh

+0

嘿@Ash如果你还在那里可以请你告诉我,我如何显示在列7 –

相关问题