C#datagridview设置单元格值保持为null

时间:2010-02-12 12:11:13

标签: c# datagridview

我正在以这种方式动态地向datagridview添加行:

Question question = new Question();
List<Question> questions = question.GetQuestionsByQuestionnaire(questionnaireId);
if (questions != null)
{
    dgvQuestions.Columns.Add("Question", "Vraag");
    dgvQuestions.Columns.Add("QuestionType", "Vraag type");
    dgvQuestions.Columns.Add("Category", "Categorie");

    for (int i = 0; i < questions.Count; i++ )
    {
        int row = dgvQuestions.Rows.Add();

        dgvQuestions.Rows[row].Cells["Question"].Value = questions[i].Question;
        dgvQuestions.Rows[row].Cells["QuestionType"].Value = questions[i].QuestionType;
        dgvQuestions.Rows[row].Cells["Category"].Value = questions[i].Category;

        dgvQuestions.Rows[row].Tag = questions[i];
    }
}

我没有收到任何错误,但是单元格值保持为null并且我100%确定Question,QuestionType和Category包含数据。我在这里缺少什么?

3 个答案:

答案 0 :(得分:0)

我不确定为什么会出现这种情况,但我会考虑混合使用动态数据但是输入数据集。

你要做的是:

  1. 创建一个键入的DataSet,添加一个“问题”表,其中包含您需要的列
  2. 从表单上的工具箱中放置DataSet的实例(必须在此之前重新编译),将其命名为myDataSource
  3. 在表单上放置BindingSource,将myDataSource分配给DataSource媒体资源,然后为DataMember媒体资源选择表格。
  4. 将绑定源分配给DataSource
  5. DataGridView属性

    使用例如myDataSource.Questions.NewQuestionsRow()myDataSource.Questions.AddQuestionsRow(...)

    将数据添加到数据源

答案 1 :(得分:0)

我刚遇到类似的事情。您可能希望确保GridView的EnableViewState设置为True。

答案 2 :(得分:0)

确保您的GridView的VitualMode设置为False。