0

いくつかのリストを ViewState に保存する必要があります。

クラスを作成しました:

    [Serializable]
    public class TemplateTypeProcedureListViewState
    {
        public string Name { get; set; }
        public string ProcedureName { get; set; }
        public string ProcedureParameter { get; set; }
        public string ProcedureParameterType { get; set; }
    }

ビューステートは次のとおりです。

    private TemplateTypeProcedureListViewState TemplateTypeProcedureList
    {
        get { return (TemplateTypeProcedureListViewState)ViewState["TemplateTypeProcedureList"]; }
        set { ViewState["TemplateTypeProcedureList"] = value; }
    }

私はこのような値を与えています:

   var templateTypeProcedureListViewState = new TemplateTypeProcedureListViewState
   {
       Name = ListNameTextBox.Text,
       ProcedureName = ListProcedureNameTextBox.Text,
       ProcedureParameter = ListProcedureParameterTextBox.Text,
       ProcedureParameterType = ListProcedureParameterTypeTextBox.Text
   };                

   ViewState.Add("TemplateTypeProcedureList", templateTypeProcedureListViewState);

ここで、別の項目を追加すると、最初の項目が上書きされます (または削除され、もう 1 つの項目 (2 番目) が保存されます)。複数の項目を ViewState に保存することはできますか? 何かまたはどこかを紹介してもらえますか?ありがとう :)

4

1 に答える 1

2

これは、新しいアイテムを Viestate に保存したために発生します。viewstate に保存されたリストにアイテムを追加していません。

最初にリストを取得してからアイテムを追加し、もちろん後で保存する必要があります。

 var list = TemplateTypeProcedureList.Add(new item);
 TemplateTypeProcedureList = list;

PS: ページのサイズがどんどん大きくなるため、viestate を使用するのは最善の方法ではありません。ViewState に関する多くの情報を保存しないようにしてください。

于 2013-10-16T09:35:24.217 に答える