Динамически обновлять выпадающий список - PullRequest
0 голосов
/ 27 октября 2011

У меня есть этот выпадающий список и все. Единственная проблема заключается в том, что всякий раз, когда я добавляю новый элемент в базу данных через мой веб-сайт, выпадающий список по какой-то причине не обновляется.

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 Я использую процедуру сохранения, чтобы просто вставить префикс, например Pre, yes, 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.

@ Юрий Рожовецкий Да, я добавляю новые элементы на эту страницу с помощью выпадающего списка.

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

Всякий раз, когда вы добавляете элемент в свою базу данных, вы должны перепривязывать свой выпадающий список.

yourDropDown.DataSource = //...
yourDropDown.DataBind();

То есть DropDownLists (и другие элементы управления) не могут знать, что их данные изменились за кулисами, они не могут автоматически их обнаружить. Вы должны указать элементам управления перепривязать их данные вручную.

Хорошая работа на Page_Load(...){ if !(IsPostback) части.

1 голос
/ 28 октября 2011

Поскольку вы добавляете новый префикс на этой странице с некоторым элементом обратной передачи, вам нужно добавить этот новый элемент в коллекцию Items выпадающего списка PrefixID и обновить экземпляр CurrentUser в сеансе сразу после добавления нового префикса в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...