2011-10-27 17 views
0

このドロップダウンリストにはすべてが入力されています。唯一の問題は、自分のウェブサイトからデータベースに新しいアイテムを追加するたびに、何らかの理由でドロップダウンリストが更新されないということです。動的にドロップダウンリストを更新

private CurrentUser _cu = new CurrentUser();//just to check if use is an admin or not. 

    protected void Page_Load(object sender, EventArgs e) 
    {   
     _cu = (CurrentUser)Session[Common.SessVariables.CurUser]; 
     if (!_cu.CanReport) { Response.Redirect("~/default.aspx"); } 

     CurrentUser cu = (CurrentUser)Session[Common.SessVariables.CurUser]; 
     if (!IsPostBack) 
     { 
      foreach (PrefixAdd loc in cu.Prefix)//Prefix is a Property 
      { 
       ListItem x = new ListItem(loc.Prefix); 
       PrefixID.Items.Add(x); 
      } 
     } 

    } 

@Wayne私はちょうど前のような接頭辞を挿入するために店の手順を使用しています、はい、SEY、などそして、リストは接頭辞が取り込まれます。

StringBuilder sbSQL = new StringBuilder(255); 
sbSQL.Append(string.Format("exec insPrefix @Prefix=N'{0}';", PrefixBox.Text.Trim())); 
string msg = string.Empty; 
msg = (_oDAW.ExecuteNonQuery(sbSQL.ToString())) ? string.Format(Common.GetAppSetting(Common.ConfigKeys.User_Submit_Success), 
PrefixBox.Text.Trim()) : Common.GetAppSetting(Common.ConfigKeys.SubmitFail); //this is a somewhat custom method for CS and databinding. 

@ Yuriy Rozhovetskiy Yeaこのページにドロップダウンリストで新しい項目を追加します。

+0

また、データベースの更新方法も教えてください。それはポストバックイベントを提供していますか?もしそうなら、それらのイベントを処理していないので、ドロップダウンリストは更新されません。 –

+0

このページに新しいアイテムを追加しますか?そうでない場合は、新しいアイテムを追加した後にセッションでユーザーを更新しますか? –

答えて

3

データベースにアイテムを追加するたびに、ドロップダウンリストを再バインドする必要があります。

、DropDownLists(および他のコントロール)である
yourDropDown.DataSource = //... 
yourDropDown.DataBind(); 

が自分のデータが舞台裏で変更されたことを知る方法はありません、彼らはそれを自動的に検出することはできません。コントロールにデータを手動で再バインドするように指示する必要があります。

Page_Load(...){ if !(IsPostback)部分でうまくいっています。

1

このページにいくつかのポストバック項目を追加すると、この新しい項目をPrefixIDドロップダウンの項目コレクションに追加し、データベースに新しいプレフィックスを追加した直後にSession内のCurrentUserインスタンスを更新する必要があります。

関連する問題