質問するログイン新規登録

回答編集履歴

3

追記

2018/06/06 01:26

投稿

退会済みユーザー
answer CHANGED
@@ -87,4 +87,48 @@
87
87
  </html>
88
88
  ```
89
89
 
90
- 質問者さんは一体何を見て制御が飛ばないと言っているのですか?
90
+ 質問者さんは一体何を見て制御が飛ばないと言っているのですか?
91
+
92
+ **【2018/6/6 10:25 追記】**
93
+
94
+ 下の 2018/06/06 10:12 の私のコメントで「修正後のコードは回答欄に追記しておきます」と書きましたが、それを以下に書きます。.aspx.cs の方は質問者さんが質問に書いたコードそのままで問題ないはずです。
95
+
96
+ 詳しい原因は追究できてませんが、非同期ポストバック後の応答で ComboBox1, ComboBox2 の両方を再描画しないとダメということのようです。(質問者さんのコードでは ComboBox2 しか UpdatePanel に含まれてないので、非同期ポストバック後の応答で ComboBox1 とそれに付随するスクリプト他が再描画されない)
97
+
98
+ ```
99
+ <%@ Page Language="C#" AutoEventWireup="true"
100
+ CodeBehind="ComboBox.aspx.cs" Inherits="WebFormsAppNET4.ComboBox" %>
101
+
102
+ <!DOCTYPE html>
103
+
104
+ <html xmlns="http://www.w3.org/1999/xhtml">
105
+ <head runat="server">
106
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
107
+ <title></title>
108
+ <%--<asp:PlaceHolder runat="server">
109
+ <%: System.Web.Optimization.Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %>
110
+ </asp:PlaceHolder>--%>
111
+ </head>
112
+ <body>
113
+ <form id="form1" runat="server">
114
+ <asp:ScriptManager ID="ScriptManager1" runat="server">
115
+ <%--<Scripts>
116
+ <asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
117
+ </Scripts>--%>
118
+ </asp:ScriptManager>
119
+
120
+ <asp:UpdatePanel ID="UpdatePanel1" runat="server">
121
+ <ContentTemplate>
122
+ <ajaxToolkit:ComboBox ID="ComboBox1" runat="server"
123
+ AutoPostBack="True"
124
+ OnSelectedIndexChanged="ComboBox1_SelectedIndexChanged">
125
+ </ajaxToolkit:ComboBox>
126
+
127
+ <ajaxToolkit:ComboBox ID="ComboBox2" runat="server">
128
+ </ajaxToolkit:ComboBox>
129
+ </ContentTemplate>
130
+ </asp:UpdatePanel>
131
+ </form>
132
+ </body>
133
+ </html>
134
+ ```

2

追伸追加

2018/06/06 01:26

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,85 @@
6
6
 
7
7
  多分また前のスレッドの制御が飛ばないという話と同様に調べ方の問題・勘違いだと思います。
8
8
 
9
- 前のスレッドでも言いましたが、コードをどんどん削っていって、ホントに制御が飛んでないか調べてください。
9
+ 前のスレッドでも言いましたが、コードをどんどん削っていって、ホントに制御が飛んでないか調べてください。
10
+
11
+ **【追伸】**
12
+
13
+ 念のため以下のコードで検証してみましたが、ComboBox の選択を変更するたび間違いなく ComboBox1_SelectedIndexChanged メソッドに制御は飛びます。
14
+
15
+ .aspx のコメントアウトしたコードはスクリプト、CSS ファイルをバンドルするためのものですが、そこは関係ないです(コメントアウトしてもしなくても同じ)。
16
+
17
+ **.aspx.cs**
18
+
19
+ ```
20
+ using System;
21
+ using System.Collections.Generic;
22
+ using System.Linq;
23
+ using System.Web;
24
+ using System.Web.UI;
25
+ using System.Web.UI.WebControls;
26
+
27
+ namespace WebFormsAppNET4
28
+ {
29
+ public partial class ComboBox : System.Web.UI.Page
30
+ {
31
+ protected void Page_Load(object sender, EventArgs e)
32
+ {
33
+ if (!Page.IsPostBack)
34
+ {
35
+ ComboBox1.Items.Clear();
36
+ ListItem li = new ListItem("1", "1");
37
+ ComboBox1.Items.Add(li);
38
+ li = new ListItem("2", "2");
39
+ ComboBox1.Items.Add(li);
40
+ li = new ListItem("3", "3");
41
+ ComboBox1.Items.Add(li);
42
+ }
43
+
44
+ }
45
+
46
+ protected void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
47
+ {
48
+ int index = ComboBox1.SelectedIndex;
49
+ ListItem item = ComboBox1.SelectedItem;
50
+ string value= ComboBox1.SelectedValue;
51
+
52
+ Label1.Text = value;
53
+ }
54
+ }
55
+ }
56
+ ```
57
+ **.aspx**
58
+
59
+ ```
60
+ <%@ Page Language="C#" AutoEventWireup="true"
61
+ CodeBehind="ComboBox.aspx.cs" Inherits="WebFormsAppNET4.ComboBox" %>
62
+
63
+ <!DOCTYPE html>
64
+
65
+ <html xmlns="http://www.w3.org/1999/xhtml">
66
+ <head runat="server">
67
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
68
+ <title></title>
69
+ <%--<asp:PlaceHolder runat="server">
70
+ <%: System.Web.Optimization.Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %>
71
+ </asp:PlaceHolder>--%>
72
+ </head>
73
+ <body>
74
+ <form id="form1" runat="server">
75
+ <asp:ScriptManager ID="ScriptManager1" runat="server">
76
+ <%--<Scripts>
77
+ <asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
78
+ </Scripts>--%>
79
+ </asp:ScriptManager>
80
+ <ajaxToolkit:ComboBox ID="ComboBox1" runat="server" AutoPostBack="True"
81
+ OnSelectedIndexChanged="ComboBox1_SelectedIndexChanged">
82
+ </ajaxToolkit:ComboBox>
83
+
84
+ <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
85
+ </form>
86
+ </body>
87
+ </html>
88
+ ```
89
+
90
+ 質問者さんは一体何を見て制御が飛ばないと言っているのですか?

1

引用追加

2018/06/05 11:50

投稿

退会済みユーザー
answer CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  その回答では全然興味が持てないので、それなりの答えをさせてもらうと・・・
4
4
 
5
+ > ComboBox1_SelectedIndexChangedへ初期表示の1度だけしか飛んでこず、その後はComboBox1の内容を変えてもComboBox1_SelectedIndexChangedへ飛んできません。
6
+
5
7
  多分また前のスレッドの制御が飛ばないという話と同様に調べ方の問題・勘違いだと思います。
6
8
 
7
9
  前のスレッドでも言いましたが、コードをどんどん削っていって、ホントに制御が飛んでないか調べてください。