Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# под Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
vvspl
1 / 1 / 1
Регистрация: 18.07.2011
Сообщений: 90
#1

Нет обновления данных при PageLoad, а только при новом запуске - C# ASP.NET

06.05.2012, 00:52. Просмотров 787. Ответов 4
Метки нет (Все метки)

Есть DropDownList, значения в котором считываются из БД. По нажатию на кнопку заношу в БД новую строку. НО ПОСЛЕ вызова события PageLoad новая строка в DropDownList не появляется. Если полностью закрыть загрузившуюся страницу и снова запустить отладку - то всё ОК - новая строка появляется. В чём может быть причина и как устранить?
http://www.cyberforum.ru/asp-net/thread385853.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 00:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нет обновления данных при PageLoad, а только при новом запуске (C# ASP.NET):

Проблеммы при скрытом запуске дочерних окон сторонних приложений и передаче в них данных
Посоветуйте пожалуйста, как решить следующую проблемму: из основой программы...

Ошибка при запуске, а именно при входе
Помогите разобраться при запуске вылазит такая ошибка(рис).

Открыть ссылку в новом окне при заданных параметрах
Есть такая ссылка, <a...

Сделать так чтобы при запуске страницы выполнялся код только из первой формы
aspx код разнес в 2 формы, через тег <form>, возможно ли как нибудь сделать так...

Ошибка при получении данных из БД при использовании MVC framework 4.0
// HomeControlers.cs using System; using System.Collections.Generic; using...

4
Prorok
107 / 107 / 22
Регистрация: 26.12.2008
Сообщений: 166
06.05.2012, 10:19 #2
может быть в том что вы забыли сделать DataBind(), а лучше код приведите.
1
vvspl
1 / 1 / 1
Регистрация: 18.07.2011
Сообщений: 90
06.05.2012, 18:56  [ТС] #3
Такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
public partial class _Default : System.Web.UI.Page
    {
        String connectString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=C:\MyASP_Project\WebApplication1\WebApplication1\App_Data\AutoDatabase.mdf; Integrated Security=True; Connect Timeout=30;User Instance=True";
        int DropDownList_Index;  // индекс выбранного DropDownList
        EventArgs e;   // аргумент для вызова функции Page_Load
        int AddCount; // количество строк, добавленых в DropDownList
                
        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (Session["DDList_Index"] != null) DropDownList_Index = (int)Session["DDList_Index"];
            String str1 = "SELECT Marka, Model, Year, Describe, Image FROM Auto";
            String str2 = "SELECT Marka, Model, Year, Describe, Image FROM Auto WHERE id=";
            String str3 = Convert.ToString(DropDownList_Index + 1);
            String SqlStr;
 
            if (DropDownList_Index == 0)  SqlStr = str1;
            else SqlStr = string.Concat(str2, str3);
            
                SqlConnection connection = new SqlConnection(connectString);
                SqlCommand countRowsQuery = new SqlCommand("SELECT count(id) FROM Auto", connection);
                SqlCommand sqlCmd = new SqlCommand(SqlStr, connection);
 
                connection.Open();
                int countRows = (int)countRowsQuery.ExecuteScalar();  // количество строк в БД
                SqlDataReader MyRdr = sqlCmd.ExecuteReader();         //считывание всех полей во всех строках 
                int count = 0;
                
                while (MyRdr.Read())                            // перебор всех строк в БД
                {
                    if (count == 0)   // отображение полей только одной выбранной в DropDownList записи
                    {
                        Marka.Text = (String)MyRdr[0];
                        Model.Text = (String)MyRdr[1];
                        Year.Text = Convert.ToString(MyRdr[2]);
                        TextBox1.Text = (String)MyRdr[3];
                        Image1.ImageUrl="~/Images/"+(String)MyRdr[4];
                    }
                    
                    count++;
                  
                    if (Session["AddCount"]!=null) AddCount = (int)Session["AddCount"];
                    if (AddCount<countRows)  // выполнение добавления в DropDownList в соответствии с количеством записей в БД
                    {
                    DropDownList1.Items.Add((String)MyRdr[0] + " " + (String)MyRdr[1]); 
                        AddCount++;
                        Session["AddCount"] = AddCount;
                    }
                }
                MyRdr.Dispose();
                connection.Dispose();
            
        }
 
        protected void Btn_Add_Click(object sender, EventArgs e)
        {
 
        }
 
        protected void PopUp_Btn_OK_Click(object sender, EventArgs e)
        {
            // Загрузка файла изображения на сервер
            if (FileUpload1.HasFile)
            {
                try
                {
                    FileUpload1.SaveAs(Server.MapPath("~/Images/") + FileUpload1.FileName);
                    PopUp_Label_Describe.Text = FileUpload1.FileName;
                    //Label1.Text = "Файл успешно загружен!!";
                }
                catch
                {
                    //Label1.Text = "Не удалось загрузить файл.";
                }
                
                if ((TextBox2.Text != null)&&(TextBox3.Text != null)&&(TextBox5.Text != null)&&(PopUp_Label_Describe.Text != null))
               {
                   SqlConnection connection = new SqlConnection(connectString);
                   SqlCommand sqlCmd = new SqlCommand("INSERT INTO Auto ([Marka], [Model], [Year], [Describe], [Image]) VALUES ('"+ TextBox2.Text + "','" + TextBox3.Text + "','" + Popup_DDownList_Year.SelectedItem + "','" + TextBox5.Text + "','" + FileUpload1.FileName + "')", connection);
 
                    connection.Open();
                    sqlCmd.ExecuteScalar();
                    connection.Dispose();
 
                    TextBox2.Text = null;
                    TextBox3.Text = null;
                    Popup_DDownList_Year.SelectedIndex = 1;
                    TextBox5.Text = null;
                    PopUp_Label_Describe.Text = null;
                    Session["OK"] = 1;
                    Page_Load(form1, e);   // Заставим страничку перегрузиться для добавления новой строки - не помогает
 
                }
                // else сообщение - "Заполните пожалуйста все данные!";  
            }
        }
 
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)  // выбор значения записи в выпадающем списке
        {
            Session["DDList_Index"] = DropDownList1.SelectedIndex;
            Page_Load( form1, e);                // Заставим страничку перегрузиться из-за отставания DDList_Index
        }
 
        protected void Btn_Del_Click(object sender, EventArgs e)   // удаление выбранной записи
        {
            SqlConnection connection = new SqlConnection(connectString);
            SqlCommand sqlCmd = new SqlCommand("DELETE FROM Auto WHERE id=" + (DropDownList_Index + 1), connection);
            
            DropDownList1.Items.Remove(DropDownList1.Items[DropDownList_Index]); // -удалить из списка выбранный Item.
            int temp = (int)Session["DDList_Index"];
            temp--;
            Session["DDList_Index"] = temp;
            Page_Load(form1, e);   // Перегрузка страницы для обновления данных
            //Response.Redirect("Default.aspx");  // не работает как надо - почему?
 
            connection.Open();
            sqlCmd.ExecuteScalar();
            connection.Dispose();
        }
 
        
        
        
    }
0
Prorok
107 / 107 / 22
Регистрация: 26.12.2008
Сообщений: 166
06.05.2012, 23:51 #4
в тех местах где у вас Page_Load(form1, e); напишите DataBind();
и почитайте что-то про жизненный цикл страницы, вот хотя бы это.
1
vvspl
1 / 1 / 1
Регистрация: 18.07.2011
Сообщений: 90
07.05.2012, 13:56  [ТС] #5
Я не понял причём здесь DataBind(). Тупо написал его в указанном месте - ... никакого эффекта.
0
07.05.2012, 13:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 13:56
Привет! Вот еще темы с решениями:

При добавлении данные отображаются в таблице, но после закрытия программы при повторном её запуске этих данных нет
учащиеся_ПОИТTableAdapter1.Insert(metroTextBox1.Text,...

Стал сильно нагреваться блок питания но только при первом запуске и вырубает комп , при втором запуске работает норм
поставил новую видюху Geforce GTX 560 ti и стал сильно нагреваться блок...

В биосе нет меню Boot при нажатии на F12 при запуске ПК
Здравствуйте, хочу установить Windows 7, но в биосе нет меню Boot, при нажатии...

При запуске программы вылетает исключение, при отладке кода его нет
Всем привет! Есть такой код. public class Solution { public static void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru