[ad_1]
プロジェクトに問題があります。
私は2つのドロップダウンリストを作成しました。ドロップダウンリストの値は、別のドロップダウンリストの選択された値によって設定され、
dropdownlist1 で値を選択したときに、dropdownlist2 の値が変更されることを望みます
どうすればこれを解決できますか?
私が試したこと:
これは私のコードです、
私のaspx.csで
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { Bind_CheckList(); } Listcompany(); }
private void Listcompany() { ddl3.DataSource = comp.GetData(); ddl3.DataTextField = "Company_Name"; ddl3.DataValueField = "Company_ID"; ddl3.DataBind(); ddl3.Items.Insert(0, new ListItem("--Select--", "")); } protected void ddl1_SelectedIndexChanged(object sender, EventArgs e) { string company = ddl3.SelectedValue.ToString(); ddl1.DataSource = shift.GetDatashiftbycomp(company); ddl1.DataTextField = "Name_Shift"; ddl1.DataValueField = "ID_Shift"; ddl1.DataBind(); ddl1.Items.Insert(0, new ListItem("--Select--", "")); }
私のaspxで
<asp:DropDownList ID="ddl3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl1_SelectedIndexChanged" > </asp:DropDownList> <pre> <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="false" ></asp:DropDownList>
解決策 3
の Listcompany
コールは if (!Page.IsPostBack)
ブロック。 現状では、ポストバックするたびにリストを再バインドしています。つまり、 SelectedIndexChanged
イベントは発生しません。
C#
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Bind_CheckList(); Listcompany(); } }
また、Visual Studio デザイナーによって提供される既定値をそのまま受け入れるのではなく、コントロールに意味のある ID を与える必要があります。 ID ddl1
と ddl3
これらのコントロールが何に使用されるかについては何も教えてくれません。
ID がイベント ハンドラー名と一致しない場合は特に問題になります。誰が推測できるでしょうか。 ddl1_SelectedIndexChanged
を扱います SelectedIndexChanged
のイベント ddl3
?
解決策 4
チェックボックスをオンにすると、チェックボックスのリストが表示されます
[ad_2]
コメント