0

我将 RadGrid 与 QuestionManager 对象列表绑定,如下所示:

public class QuestionManager
{
        public FormType FormType { get; set; }
        public Form Form { get; set; }
        public Question Question { get; set; }
}

Question对象还具有List的属性。

public class Question
{
    public int QuestionId{get;set;}
    public string QuestionNumber{get;set;}
    public List<Choice> ChoiceList{get;set;}
}

我正在使用一个存储过程来获取所有数据,因此不需要往返。

网格显示 FormType、FormName 和 Question # 列。

单击每个问题上的编辑按钮时,我需要填充相应问题的列表对象中可用的所有数据和控件。

为了实现这一点,我应该使用 FormTemplate 还是 NestedViewTemplate?

有没有办法可以在循环中迭代标记中的列表?

我应该如何获得每个问题的列表?我不想再次访问数据库,因为它会很昂贵。

网格中有没有地方可以存储 List 集合,这样我就不必访问数据库了?

4

1 回答 1

0

我在 RadGrid 的 MasterTableView 的 DataKeyNames 中添加了所需的数据。在 ItemDataBound 函数中,我正在检索它。

<MasterTableView EnableViewState="true"  DataKeyNames="FormType.FormTypeCode,Form.FormId,Question.QuestionId,Question.ChoiceList">

string formTypeCode = radGrid.MasterTableView.DataKeyValues[e.Item.ItemIndex]["FormType.FormTypeCode"].ToString();
string formId = radGrid.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Form.FormId"].ToString();
string questionId = radGrid.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Question.QuestionId"].ToString();
Object objectChoiceList = radGrid.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Question.ChoiceList"];

List<Choice> choiceList = null;

if (objectChoiceList != null)

choiceList = objectChoiceList as List<Choice>;

if (choiceList != null && choiceList.Count > 0)
{
//TODO:    
}
于 2013-10-25T20:01:47.903 回答