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 in markup をループで反復処理する方法はありますか?

各質問のリストを取得するにはどうすればよいですか?コストがかかるため、DB に再度アクセスしたくありません。

DB にアクセスする必要がないように、グリッドに 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 に答える