0

変数に基づいて異なる名前で異なるセッション変数を動的に作成できるかどうか疑問に思っていましたか?

この方法を実行しようとしましたが、変数が気に入らないようです

protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    LinkButton lb = (LinkButton)e.Row.FindControl("MyLinkButton");
    Label options = (Label)e.Row.FindControl("MyLabel");
    if (e.Row.RowType == DataControlRowType.DataRoow)
    {
    Session[lb] = options;  
//I was trying to use this to create Session Variables with Different Names Dynamically
    }

}

したがって、私の最終結果は、すべてを手動で作成する必要なく、次のセッションを持つことになります。

Session["Value"] = "MyOption"
Session["Value1"] = "MyOption1"
Session["Value2"] = "MyOption2"
Session["Value3"] = "MyOption3"
4

2 に答える 2

0

セクションのリストを作成できます。例:

List<string> sections=GetSectionsList();

リスト内の各項目に対してセッション変数を作成し、次のようにステータスを入力します。

foreach(string section in sections)
{
   Session[section] = GetSectionStatus(section);
}

次に、各セクションの onload でセクションのセッション値をチェックし、それに応じて動作します。ただし、セクションの数が 2 ~ 5 とかなり少ない場合にのみ、この状況でセッションを使用することをお勧めします。それ以外の場合は、各セクションのロード時に db を呼び出す方がよいでしょう。

于 2013-09-10T19:50:09.027 に答える