質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
ASP.NET

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

Q&A

解決済

1回答

5068閲覧

aspx ドロップダウンリスト DatetextField変更方法

SUPER_SLiNKY

総合スコア76

ASP.NET

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

0グッド

0クリップ

投稿2016/09/23 10:30

ドロップダウンリストを作り、条件によってDatatextFieldを変更したいです。

<%if A='1' then%>
<asp:DropDownList ID="DropDown1" DatasourceID='TEST' DatatextField="A"
<%end if%>

<%if A='2' then%>
<asp:DropDownList ID="DropDown2" DatasourceID='TEST' DatatextField="B"
<%end if%>

<%if A='3'then%>
<asp:DropDownList ID="DropDown3" DatasourceID='TEST' DatatextField="C"
<%end if%>

上記のやりかたで出来ることはできるのですが、IDがばらばらになってしまい後の処理で不便になってしまうため、一つにまとめたいです。

ドロップダウンリスト(ID="DropDown1")をひとつ作り、そのあとにIF文でID="DropDown1"のDatatextFieldだけを変更するようなことは出来ますでしょうか?

教えてください。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/09/23 10:46

TEST は何なのですか? SqlDataSource ですか? そうだとして、SqlDataSource の SELECT クエリはどうなっているのですか?
guest

回答1

0

ベストアンサー

返事がないので、とりあえず TEST は SqlDataSource、設定された SELECT クエリで "A", "B", "C" の 3 つとも取得されているとして回答します。

以下のようにして質問者さんのやりたいことができませんか? Employees というのは Microsoft が提供しているサンプルデータベース Northwind の Employees テーブルです。

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) { DropDownList1.DataTextField = ((RadioButtonList)sender).SelectedValue; } protected void Page_Load(object sender, EventArgs e) { // 初期値はとりあず "LastName" とする if (!Page.IsPostBack) { DropDownList1.DataTextField = "LastName"; } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" RepeatDirection="Horizontal"> <asp:ListItem>EmployeeID</asp:ListItem> <asp:ListItem>LastName</asp:ListItem> <asp:ListItem>FirstName</asp:ListItem> </asp:RadioButtonList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NORTHWINDConnectionString %>" SelectCommand="SELECT [EmployeeID], [LastName], [FirstName] FROM [Employees]"> </asp:SqlDataSource> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataValueField="EmployeeID"> </asp:DropDownList> </form> </body> </html>

投稿2016/09/23 11:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

SUPER_SLiNKY

2016/09/23 11:45

返信が遅くなり申し訳ありません。 TESTはSqlDataSourceです。 ただ、ラジオボタンは使わず出来ないでしょうか? というのもAの値が1か2か3かというのはページのロード時に行いたいのです。 (Aはログインユーザーの情報をDBから取得しています) なので、ページが表示されたときにはドロップダウンリストの値が決まっている状態にしたいと思っています。
退会済みユーザー

退会済みユーザー

2016/09/23 11:53

当たり前に Page_Load で可能です。初期値は Page_Load で指定していることが分かりませんか? やってもみないでコメントしてませんか?
SUPER_SLiNKY

2016/09/23 12:00

申し訳ありません、確かにこれで出来ます。 ありがとうございましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問