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

Очень странная особенность

24.01.2016, 11:18. Просмотров 298. Ответов 6
Метки нет (Все метки)

Столкнулся с очень странным поведением. Выбираю Dropdownlist ом значения из базы и вношу button ом это значение в новую таблицу в базе. Так все работает идеально за исключением только того что одно значение из таблицы которая прибиндина к dropdownlistу не выбирается и вместо него вноситься первое значение по умолчанию dropdownlista в новую таблицу. Какая то дьявольщина. И я даже не знаю что в поисковике написать по этой проблеме. Потому что проблемы как бы и нет, просто какое то заколдованное поле в таблице. Кстати на нем выдавал ошибку ----Недействительный аргумент обратной передачи или обратного вызова. Проверка события включена с помощью <pages enableEventValidation="true"/> в конфигурации или <%@ Page EnableEventValidation="true" %> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова поступают из элемента управления сервера, сформировавшего их изначально. Если данные действительные и ожидавшиеся, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи и обратного вызова для проверки.

Я пробил ее и люди посоветовали только EnableEventValidation="true" поставить в false. Господа есть у кого мысли на этот счет ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2016, 11:18
Ответы с готовыми решениями:

Особенность работы Response.Redirect()
Всем здравствуйте! Подскажите пожалуйста, Response.Redirect() работает так же как return? То есть...

Я очень прошу... я здесь просто новенький( Мне очень срочно)
1.Составить програму- какая бы обсчитала количество слов что начинается на w,a –В данном...

Странная ошибка при компиляции очень очень большой проги ,,boomerang,,
Я в общем, даже и не представляю, куда смотреть в поисках ошибки. Ошибка 1 error LNK2019: ссылка...

очень очень странная ошибка
вообщем стоит Windows 8.1 стоит visual studio 2008 возникла проблема: когда пытаюсь...

Очень странная штука
Для создания сайтов оффлайн я использую Денвер-2. Никогда с ним не было никаких проблем. Но сегодня...

6
Andrey PSt
174 / 172 / 34
Регистрация: 23.12.2015
Сообщений: 300
Записей в блоге: 3
24.01.2016, 13:20 2
Лучше один раз увидеть КОД, чем сто раз прочитать описание. Выложите код страницы.
0
taiszi
0 / 0 / 0
Регистрация: 18.06.2015
Сообщений: 7
24.01.2016, 15:32  [ТС] 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
private string Sel_name;
    private string Sel_phone;
    private string Sel_address;
    private string r_name;
 
    protected void Page_Load(object sender, EventArgs e)
    {
        String CS = ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(CS);
        SqlCommand cmd = new SqlCommand("SELECT * from UserData where UserName ='" + Session["USERNAME"].ToString() + "'", con);
        con.Open();
        SqlDataReader MyDataSet = cmd.ExecuteReader();
        while (MyDataSet.Read())
        {
            Sel_name = MyDataSet.GetValue(5).ToString();
            Sel_phone = MyDataSet.GetValue(2).ToString();
            Sel_address = MyDataSet.GetValue(4).ToString();
        }
        con.Close();
 
        DropDownList2.DataSourceID = "SqlDataSourceMB";
        DropDownList2.DataTextField = "MB_Model";
        DropDownList2.DataValueField = "MB_Model";
    }
 
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownList1.SelectedValue == "Материнская плата")
        {            
            DropDownList2.DataSourceID = "SqlDataSourceMB";
            DropDownList2.DataTextField = "MB_Model";
            DropDownList2.DataValueField = "MB_Model";
        }
        else {
           
        }
        if (DropDownList1.SelectedValue == "Оперативная память")
        {
            DropDownList2.DataSourceID = "SqlDataSourceRAM";
            DropDownList2.DataTextField = "RAM_Model";
            DropDownList2.DataValueField = "RAM_Model";               
        }
        else {
            
        }
 
    }
 
   
    protected void Button1_Click(object sender, EventArgs e)
    {
        String CS = ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(CS);        
 
        if (DropDownList1.SelectedValue == "Материнская плата")
        {
            //   SqlCommand cmd = new SqlCommand("insert into MotherBoard values('" + DropDownList2.SelectedValue.ToString() + "','" + TextBox1.Text + "',N'" + Sel_name + "','" + Sel_phone + "',N'" + Sel_address + "')", con);
            SqlCommand cmd = new SqlCommand("INSERT INTO MotherBoard (MB_Name, MB_Price, Sr_Name, Sr_Phone, Sr_Address, Seller_guid)values(@mname, @mprice, @srname, @srphone, @sradres, @sguid)", con);            
            cmd.Parameters.Add("@mname", SqlDbType.NVarChar).Value = DropDownList2.DataTextField.ToString();
            if (DropDownList3.SelectedIndex == 0)
            {
                cmd.Parameters.Add("@mprice", SqlDbType.NVarChar).Value = TextBox1.Text + " у.е.";
            }
            else {
                cmd.Parameters.Add("@mprice", SqlDbType.NVarChar).Value = TextBox1.Text+ " сум";
            }            
            cmd.Parameters.Add("@srname", SqlDbType.NVarChar).Value = Sel_name;
            cmd.Parameters.Add("@srphone", SqlDbType.NVarChar).Value = Sel_phone;
            cmd.Parameters.Add("@sradres", SqlDbType.NVarChar).Value = Sel_address;
            cmd.Parameters.Add("@sguid", SqlDbType.NVarChar).Value = Session["USERNAME"];
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            Response.Redirect("~/Mylist.aspx");
        }
        else {
            Response.Write("Error");
        }
        if (DropDownList1.SelectedValue == "Оперативная память")
        {
            //   SqlCommand cmd = new SqlCommand("insert into MotherBoard values('" + DropDownList2.SelectedValue.ToString() + "','" + TextBox1.Text + "',N'" + Sel_name + "','" + Sel_phone + "',N'" + Sel_address + "')", con);
            SqlCommand cmd = new SqlCommand("INSERT INTO RAM (RAM_Name, RAM_Price, Sr_Name, Sr_Phone, Sr_Address, Seller_guid)values(@rname, @mprice, @srname, @srphone, @sradres, @sguid)", con);
            cmd.Parameters.Add("@rname", SqlDbType.NVarChar).Value = r_name; 
            if (DropDownList3.SelectedIndex == 0)
            {
                cmd.Parameters.Add("@mprice", SqlDbType.NVarChar).Value = TextBox1.Text + " у.е.";
            }
            else {
                cmd.Parameters.Add("@mprice", SqlDbType.NVarChar).Value = TextBox1.Text + " сум";
            }
            cmd.Parameters.Add("@srname", SqlDbType.NVarChar).Value = Sel_name;
            cmd.Parameters.Add("@srphone", SqlDbType.NVarChar).Value = Sel_phone;
            cmd.Parameters.Add("@sradres", SqlDbType.NVarChar).Value = Sel_address;
            cmd.Parameters.Add("@sguid", SqlDbType.NVarChar).Value = Session["USERNAME"];
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            Response.Redirect("~/Mylist.aspx");
        }
        else {
            
        }
    }
 
 
 
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Userhome.aspx");
    }
 
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownList1.SelectedValue == "Оперативная память") {
            DropDownList2.DataSourceID = "SqlDataSourceRAM";
            DropDownList2.DataTextField = "RAM_Model";
            DropDownList2.DataValueField = "RAM_Model";
            r_name = DropDownList2.SelectedValue.ToString();
        }
        
    }
Добавлено через 5 минут
dropdownlist2.selectedvalue не обновляется

Добавлено через 1 час 41 минуту
точнее он обновляется но одну запись из таблицы которая к нему байндиться не видит и выдает вместо нее первую запись в таблице по умолчанию
0
Usaga
Эксперт .NET
5547 / 3750 / 663
Регистрация: 21.01.2016
Сообщений: 14,952
Завершенные тесты: 2
24.01.2016, 19:08 4
В методе Page_Load замените
C#
1
2
3
DropDownList2.DataSourceID = "SqlDataSourceMB";
DropDownList2.DataTextField = "MB_Model";
DropDownList2.DataValueField = "MB_Model";
на

C#
1
2
3
4
5
if (!IsPostBack) {
DropDownList2.DataSourceID = "SqlDataSourceMB";
DropDownList2.DataTextField = "MB_Model";
DropDownList2.DataValueField = "MB_Model";
}
0
taiszi
0 / 0 / 0
Регистрация: 18.06.2015
Сообщений: 7
24.01.2016, 20:52  [ТС] 5
Проблема осталась. Забыл сказать что происходит дело с таблицей Оперативная память. Если ничего не поможет останется только создать новую таблицу в базе и заново ее заполнить. НО что-то мне говорит что это не поможет.
0
skynick99
116 / 116 / 30
Регистрация: 06.12.2012
Сообщений: 254
25.01.2016, 02:53 6
Кликните здесь для просмотра всего текста

Не по теме:

епона мать. это я про код.



разобрать и понять, что у Вас не получается настолько сложно. первое попробуйте DropDownList2.DataBind(); в PageLoad, - этим вы говорите перерисовать ваш DropDownList2. DataBind()-надо использовать практически всегда когда вы изменяете ему датасорс или добавляете или убираете элемент из него. Так же неизвестно как это все себя поведет когда совершится PostBack, т.е. скорее всего без варианта предложенного выше
Цитата Сообщение от Usaga Посмотреть сообщение
В методе Page_Load замените
C#
Цитата Сообщение от Usaga Посмотреть сообщение
на
у вас будет всегда в DropDownList2.DataSourceID = "SqlDataSourceMB";
Кликните здесь для просмотра всего текста

Не по теме:

P.S. в БД есть и другие типы кроме nvarchar. И правильнее было их использовать. Особенно там где вы вписываете в БД число + "у.е" (это есть неправильно). Это я к чему - Вы наверно только учитесь почитайте в этом направление что нибудь.

0
taiszi
0 / 0 / 0
Регистрация: 18.06.2015
Сообщений: 7
25.01.2016, 10:19  [ТС] 7
Сделал как сказали ничего не поменялось. Потом думаю может в строке русский символ , поставил N перед переменной , ничего не поменялось. Взял тупо переписал строку - просто заново написал. Стало выбираться в dropdownliste. Проблема решилась переписыванием строки в таблице базы данных. Но что это было я так и не понел.

Добавлено через 1 минуту
В любом случае спасибо за то что откликнулись. В программировании не силен , правильно думаете, еще учусь.
0
25.01.2016, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2016, 10:19

Очень странная проблема
Всем привет, столкнулся со странной проблемой для меня. Если сразу после включения компьютера...

Очень странная проблема с WI-FI
Здравствуйте. Вот у меня такая проблема уже достаточно давно, да вот руки не доходили. В общем есть...

Очень странная ошибка
Ребята, из-за чего у меня это может быть - этот скрипт &lt;?php /* сначала делаем то же, что и...


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

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

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