🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

2回答

4743閲覧

ASP.NET DropDownListに項目を表示したいのですが,表示されません。

pentagon

総合スコア11

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2021/03/16 02:08

編集2021/03/16 06:36

前提・実現したいこと

ASP.NETで DropDownListに項目を表示したい
MAINのWEBSourceにユーザーコントロールを張り付けてそのコントロール内にDropDownListがあります。

DropDownListの入力候補として "AAAAAA","BBBBBB" をセットしてありデータが作成されていれば,DBから1件のデータをセットしたり
DropDownListの内容を変更したいです。

上手く表示できないのでとりあえず定数をセットしてテストしている所です。
WebControl1.pDropRiyu = "xxxx"

プロパティの箇所は前回テキストの方法をお聞きしたのでその方法そのまま? です。

OS: Windows10
NET-FRAMEWORK 4.0
VisualStudio 2010
vbで作成

該当のソースコード

ASP.NET

1Public Class WebRyohi 2 Inherits System.Web.UI.Page 3 4 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 5 WebControl1.pDropRiyu = "xxxx" 6 End Sub 7 8Public Class WebControl1 9 Inherits System.Web.UI.UserControl 10 11 Public Property pDropRiyu As String 12 Get 13 Return DropRiyu.Text 14 End Get 15 Set(ByVal value As String) 16 DropRiyu.DataSource = value 17 End Set 18 End Property 19 20---WebControlのデザイン 21 22 <td colspan="5" class="style1"> 23 <asp:DropDownList ID="DropRiyu" runat="server" Height="20px" Width="381px"> 24       <asp:ListItem></asp:ListItem> 25       <asp:ListItem Value="0"></asp:ListItem> 26    <asp:ListItem Value="1">AAAAAA</asp:ListItem> 27    <asp:ListItem Value="2">BBBBBB</asp:ListItem> 28 </asp:DropDownList></td>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/03/16 03:14 編集

先のスレッドで教えたことは何も理解されておらず、相変わらずメチャクチャです。前のスレッドのあなたのコードから進歩しておらず、また、 > WebControl1.pDropRiyu = "xxxx" とか書いてますが、そんなコードはあり得ません。pDropRiyu プロパティの書き方もメチャクチャです。 基本ができてないから話が通じないようです。ここで文章でやり取りして話が通じるレベルまで勉強するのがまず必要なことかと思います。それが無理なら学校に行くとか研修を受けるなど、Face-to-Face でやり取りできる環境を探して、何が分からないかというレベルまで講師に探ってもらって指導を受けることを考えることをお勧めします。
pentagon

2021/03/16 03:41

"そんなコードはあり得ません" とありますが記述が間違っているのでDropDownListに表示されないのだと思うのですが?
退会済みユーザー

退会済みユーザー

2021/03/16 03:48

メチャクチャなコードを書いてもダメなのは当たり前。間違っていると認識しているなら、そんなコードを投げて質問するのは論外です。止めましょう。 それより何がしたいのかを具体的に書くのが重要。DropDownList にどのようなデータを、どこから取得して、どういう形で表示したいのか書いてないのがわからない?
pentagon

2021/03/16 04:05

本文に編集しました。
退会済みユーザー

退会済みユーザー

2021/03/16 07:25

> 上手く表示できないのでとりあえず定数をセットしてテストしている所です。 > WebControl1.pDropRiyu = "xxxx" > プロパティの箇所は前回テキストの方法をお聞きしたのでその方法そのまま? です。 そういう自分で全く分かってないメチャクチャなコードを書いて他人に見てくれと投げるのは止めましょうとお願いしているのですが・・・ DropDownList にどのようなデータを、どこから取得して、どういう形で表示したいのか・・・という問いに対する答えも不十分ですし、そもそも質問に書いてある DropDownList がメチャクチャだし、質問できるレベルになってないと思いますけど。 そのあたりを直してもらえませんか?
pentagon

2021/03/16 07:37

すみません。
guest

回答2

0

撤退すると言いながら何ですが、自分の関わったスレッドがこのまま放置になるのもなんですので、やりたいことの詳細が分かりませんが想像ベースで回答を書いておきます。

やりたいことは多分:

(1) Ajax Control Toolkit の ComboBox を配置したユーザーコントロールを作成、

(2) そのユーザーコントロールを .aspx ページに実装、

(3) .aspx ページに Button を配置し、その Click イベントのハンドラを実装、

(4) ユーザーが ComboBox から項目を選択。項目に適切なものがない場合は自分で入力、

(5) .aspx ページの Button をクリックするとポストバックされ Button.Click イベントのハンドラに制御が飛ぶのでそこで上記 (4) で選択した項目またはユーザー入力の Text (Value ではなくて) を取得、

(6) 上記 (5) で取得した Text を .aspx ページの TextBox に表示する。

・・・と想像して。

ユーザーコントロール WebUserControl1.ascx

ユーザー入力の検証は必ず以下に追加して実装すること。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> <h3>WebUserControl1</h3> <ajaxToolkit:ComboBox ID="ComboBox1" runat="server"> <asp:ListItem Text="AAA" Value="1"></asp:ListItem> <asp:ListItem Text="BBB" Value="2"></asp:ListItem> <asp:ListItem Text="CCC" Value="3"></asp:ListItem> </ajaxToolkit:ComboBox>

コードビハインド WebUserControl1.ascx.cs

using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebUserControl1 : System.Web.UI.UserControl { public ListItem ComboBoxSelectedItem { get { return ComboBox1.SelectedItem; } } } }

.aspx ページ

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm21.aspx.cs" Inherits="WebApplication1.WebForm21" %> <%@ Register TagPrefix="uc" Src="~/WebUserControl1.ascx" TagName="MyControl" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <div> <uc:MyControl ID="myControl" runat="server" /> </div> </form> </body> </html>

.aspx.cs コードビハインド

using System; namespace WebApplication1 { public partial class WebForm21 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (myControl.ComboBoxSelectedItem != null) { // Value ではなく Text を取得したいと理解 TextBox1.Text = myControl.ComboBoxSelectedItem.Text; } } } }

結果は:

イメージ説明

投稿2021/03/30 01:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ユーザーコントロールにある DropDownList に、<asp:ListItem Value="3">CCCCCC</asp:ListItem> というような項目を追加できれば良いのであろうと想像して・・・

先のスレッド https://teratail.com/questions/327003 で回答に書いたコードに DropDownList を追加。

.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %> <h3>WebUserControl1</h3> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" /> <asp:DropDownList ID="DropRiyu" runat="server" Height="20px" Width="381px"> <asp:ListItem></asp:ListItem>   <asp:ListItem Value="0"></asp:ListItem> <asp:ListItem Value="1">AAAAAA</asp:ListItem> <asp:ListItem Value="2">BBBBBB</asp:ListItem> </asp:DropDownList>

.ascx.cs

using System; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebUserControl1 : System.Web.UI.UserControl { public string TextBoxText { get { return TextBox1.Text; } set { TextBox1.Text = value; } } public ListItemCollection DropDownListItems { get { return DropRiyu.Items; } } } }

.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm20.aspx.cs" Inherits="WebApplication1.WebForm20" %> <%@ Register TagPrefix="uc" Src="~/WebUserControl1.ascx" TagName="MyControl" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <uc:MyControl ID="myControl" runat="server" /> </div> </form> </body> </html>

.aspx.cs

using System; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebForm20 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { myControl.TextBoxText = "BBB"; ListItem item = new ListItem("CCCCCC", "3"); myControl.DropDownListItems.Add(item); } } }

結果は:

イメージ説明

投稿2021/03/16 07:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pentagon

2021/03/17 00:05 編集

有難う御座いました。 助かりました。 もう一つ教えていただけませんか。 説明が本当につたなく申し訳ないのですが,コンボボックスの入力欄に表示して新規入力ができないのでしょうか? (コンボボックスは候補の選択しかできず,新規入力は不可能なのでしょうか) コンボボックスに変えてみようとおもいます。
pentagon

2021/03/17 01:05 編集

選択,入力を実行したいのでComboBoxに変えようと思うのですが ''' Public Property DropDownListItems As ListItemCollection Get Return ComboRiyu.Items End Get <--- SETの書き方がわかりません。 Set(ByVal value As ListItemCollection) DropRiyu01.Text = XXX End Set End Property 新規問い合わせにした方が良いのでしょうか? '''
退会済みユーザー

退会済みユーザー

2021/03/17 01:01

> 新規問い合わせにした方が良いのでしょうか? そうしてください。自分はこのスレッドではもう答えません。 ただし、新規の質問をするなら、日本語で自分のやりたいことを文章で他人にきちんと伝えられるスキルを身に着けてからにしてください。今回のスレッドの話も最初からユーザーの自由入力ありだったのが伝えることができてなくて時間と労力の無駄になったのでは? もうそういうのはたくさんです。
pentagon

2021/03/17 01:10

すみませんでした。 只,今回の質問が無駄になったとは思っていません。 候補以外の入力は許可しない処理の場合当然必要になります。 私自身DropDownListで候補の選択,新規入力が出来ると思っていたからであなたのおっしゃる通り もう少しツールの機能を調べてから問い合わせするべきでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問