- ベストアンサー
ListViewで条件によって表示を変えたい。
ASP:C#を使ってソースを作っています。 ListViewというSQLを表示するのに便利なタグがあったのでそれを使用しています。 ですが、取得したデータの中身を参照して、参照したデータによって表示を変えたいのですが、 Evalでデータを貼り付けることはできるのですが、stringやintなどの変数に代入出来なさそうです。 ListViewの中で、条件文を挿入することは出来るのでしょうか?
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- ListViewについて
いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。 各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか? ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、 データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。 Iで、選択している行をIIで選択状態にすることはできたのですが、 Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- ListViewとArrayListの連動がうまくいきません
メールソフトの中で既読、未読を設定するフラグを実装しているのですが ListViewのカラムクリック時の昇順・降順設定を追加するとなぜか おかしな表示になってしまいます。 未読(フラグがtrue)の時は太字で表示されて、既読(フラグがfalse)の 場合は通常のフォントで表示するようにしてあるのですが、 指定している配列ですべてtrueにしているのにもかかわらず表示されるのは trueとfalseの結果の表示がまばらに出てしまって何が原因なのかが 分かりません。 どうすればこれを解決する事が出来るでしょうか? 環境はVS2005(C#)、.NET Framework 2.0です。 リストビューの昇順・降順ロジックはどぼんの.NET Tipsに 載っている文字列、数字、日付で比較が可能なタイプのを 使用しています。 public void UpdateListView() { ArrayList list = null; int i = 0; if (listView1.Columns[1].Text == "差出人") { // 受信メールの場合 list = collectionMail[RECEIVE]; } else if (listView1.Columns[1].Text == "差出人または宛先") { // 削除メールの場合 list = collectionMail[DELETE]; } listView1.BeginUpdate(); // リストビューの内容をクリアする listView1.Items.Clear(); // ListViewを設定する foreach (Mail mail in list) { ListViewItem item = new ListViewItem(mail.subject); item.SubItems.Add(mail.address); item.SubItems.Add(mail.date); // この2行を追加 item.Tag = i; i++; listView1.Items.Add(item); // 未読(未送信)の場合は、フォントを太字にする int index = listView1.Items.Count - 1; if (mail.notReadYet == true) { listView1.Items[index].Font = new Font(this.Font, FontStyle.Bold); } } listView1.EndUpdate(); } private void listView1_DoubleClick(object sender, EventArgs e) { Mail mail = null; ListViewItem item = listView1.SelectedItems[0]; if (listView1.Columns[1].Text == "差出人") { mail = (Mail)collectionMail[RECEIVE][(int)item.Tag]; } else if (listView1.Columns[1].Text == "差出人または宛先") { mail = (Mail)collectionMail[DELETE][(int)item.Tag]; } mail.notReadYet = false; textBox1.Text = mail.body; UpdateListView(); } private void Form1_Load(object sender, EventArgs e) { // ListViewにアイテムを追加する for (int no = 0; no < subject.Length; no++) { Mail mail = new Mail(subject[no], address[no], date[no], body[no], read[no]); collectionMail[RECEIVE].Add(mail); } UpdateTreeView(); UpdateListView(); // ListViewItemComparerの作成と設定 listViewItemSorter = new ListViewItemComparer(); listViewItemSorter.ColumnModes = new ListViewItemComparer.ComparerMode[] { ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.DateTime }; // ListViewItemSorterを指定する listView1.ListViewItemSorter = listViewItemSorter; }
- ベストアンサー
- その他(プログラミング・開発)
- ストアアプリ開発 C# ListViewについて
ストアアプリ開発 C#初心者です。 サーバーからデータ取得後、 ListViewにデータを追加したいのですがよくわかりません。 ListViewに表示させたいのは日付、タイトル、画像です。 xaml↓ <ListView Grid.Row="1" x:Name="ListView1"></ListView> C# foreach (var item in blog_list){ ListViewItem addItem = new ListViewItem(); addItem.Tag = item.GetObject().GetNamedString("id"); addItem.Content = item.GetObject().GetNamedString("name"); ListView1.Items.Add(addItem); } 本当に初心者で申し訳ないのですがわかりやすい 解説等してるサイトありましたら教えてください。
- ベストアンサー
- C・C++・C#
- カレントmdbをopenする宣言
参照がDAOで、mdb内のテーブルのデータを変数に代入するために、 変数.Open "SQL内容" この文を使いたいのですが、この変数の宣言の記述は、 どう書いたら良いのか分かりません...
- ベストアンサー
- Visual Basic
- Androidアプリ Listviewが
アドバイスください。初心者です。Listviewを作りたいだけなんです。”データがありません”と表示されてしまいます・・。 ●layout(.xml) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="データが存在しません"/> </LinearLayout> ●listview(.java) import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; //ListActivityを継承 import com.example.yamato.myapplication001.R; public class listview extends ListActivity { private String[] items = { "a10", "a11", "a21", "b10" }; //(2) // private String[] items = {};(2) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リストビューを含むレイアウト指定(1) setContentView(R.layout.activity_main_activity001); // ArrayAdapterオブジェクトの生成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); // Adapterの指定 setListAdapter(adapter); // ListActivity内部にあるListViewオブジェクトを取得する場合 ListView listView = getListView(); // ListViewオブジェクトを取得したので以下のメソッド等が利用できる // 選択する要素の位置の指定 listView.setSelection(3); } } ソースは参考本からです。
- 締切済み
- Android
- C# ListView 自作列幅調整 描画されない
いつもお世話になっております。 今回はC#のListViewで皆様にお聞きしたいことがあり、 質問させて頂きました。 ListViewに3列追加しListViewの幅が変更された際に 2列目のみを引き延ばすものを作りたいと思っています。 しかし、以下操作を行うと、ListViewのリサイズ等で 描画更新されない状態になってしまいます。 (また、リストアイテムをクリックするとその列は描画されるのですが、 アイテムの描画開始Y位置がおかしくなっています。) 1.縦スクロールバーが表示されるまで縮小する 2.スクロールバーのノブを下に移動 3.縦スクロールバーの表示が消えるまで拡大する サンプルコード及び画像を添付いたします。 内容は、 3列のListViewに適当なアイテムを10個追加し、 OnClientSizeChangedでClientSize.Widthと1列3列の幅から 2列目の幅を算出・設定しています。 ※画像は、以下コントロールをFormに張り付けただけのもので 問題の起こる操作をした際のものになります。 class MyListView : ListView { public const int COL_1_WIDTH = 30; public const int COL_3_WIDTH = 75; enum LISTVIEW_COL { COL1, COL2, COL3, NUM } public MyListView() { Dock = DockStyle.Fill; HeaderStyle = ColumnHeaderStyle.None; FullRowSelect = true; HideSelection = false; View = System.Windows.Forms.View.Details; //ヘッダ追加 ColumnHeader column1 = new ColumnHeader(); ColumnHeader column2 = new ColumnHeader(); ColumnHeader column3 = new ColumnHeader(); ColumnHeader[] columnHeaders = { column1, column2, column3 }; this.Columns.AddRange( columnHeaders ); //ヘッダ幅追加 this.Columns[( int )LISTVIEW_COL.COL1].Width = COL_1_WIDTH; //1列固定 this.Columns[( int )LISTVIEW_COL.COL3].Width = COL_3_WIDTH; //3列固定 int width = ClientRectangle.Width; for( int i = 0; i < Columns.Count; i++ ) { if( i == ( int )LISTVIEW_COL.COL2 ) { continue; } width -= Columns[i].Width; } //2列 リストビューの幅いっぱいになるように調節 this.Columns[( int )LISTVIEW_COL.COL2].Width = width; //適当にアイテム追加 for( int i = 0; i < 10; i++ ) { string[] strs = { "COL1", "COL2", "COL3" }; ListViewItem item = new ListViewItem( strs ); this.Items.Add( item ); } } protected override void OnClientSizeChanged( EventArgs e ) { base.OnClientSizeChanged( e ); //2列の幅を調整 int width = ClientRectangle.Width; for( int i = 0; i < Columns.Count; i++ ) { if( i == ( int )LISTVIEW_COL.COL2 ) { continue; } width -= Columns[i].Width; } Columns[( int )LISTVIEW_COL.COL2].Width = width; } } 何故このようになってしまうのかご存知の方いらっしゃいましたら教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- 変数を使ってのSQL文の書き方(ASP)
プログラム未経験者です。 aspのSQL文の書き方を教えてください。 (ASP.NETではなく、ASPの方です。) FORMで受けっ取った日付データをstrdayという変数に代入し、 そのstardayを使ってのSQL文の書き方ですが、 以下のような書き方で良いのか分かりません。 例えば、 前の行の「SQL」という同じ変数の直後に連結する書き方や 文字列との連結の書き方です。 また日付をシングルクオーテーションで囲む書き方などです。 strday = Request.Form("StartDay") SQL = "SELECT ・・・,・・・," SQL = SQL & strday & "as startday_date, ・・・," SQL = SQL & " WHERE ('" & strday & "' >= CONVERT(DATETIME, '2012-07-05 00:00:00', 102)) " SQL = SQL & " AND ('" & endday & "' <= CONVERT(DATETIME, '2012-07-06 00:00:00', 102)) " すみません。 宜しくお願いします。
- ベストアンサー
- Microsoft ASP
- クラス変数について質問
Javaのオブジェクト指向を解説した参考書で現在勉強しているのですが、その参考書のある問題の答えの解説として「クラス変数は参照変数なので参照以外を代入できません」と書いてありました。 でも、例えば、static int n=0と書けば、0をnに代入できます。 因みに、「クラス型の変数」は参照しか代入できないのはわかっています。 よって「クラス変数」は誤植で、正しくは「クラス型変数」なのでしょうか?
- ベストアンサー
- Java
- php5+Mysql5による条件検索とその表示方法が上手く動作しないのでどなたかご指摘をお願いします。
phpにて条件検索を行っているのですが、『where』以下を$変数にすると動かなくなってしまいます。記述部分で何が間違っているのでしょうか? 以下記述↓ <? $link = db_con(); //←DB接続 $sql = "select * from tbl where id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ を下記のように『where』以下を$変数にして代入 $変数した場合↓ <? $where .= "id = '" . mysql_real_escape_string( $_GET['id'] ) . "' and name like '%" . mysql_real_escape_string( $_GET['name'] ) . "%' "; $link = db_con(); //←DB接続 $sql = "select * from tbl where $where "; $result = mysql_query( $sql ) ; $num_rows = mysql_num_rows( $result ); ?> ここまで↑ どなたかご指摘をお願いします。
- 締切済み
- MySQL
- Labelコントロールに数字を代入する
開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが LabelにInt型の変数の中身を代入する方法がわかりません。 ソースコードで書くと int a = 10; label1.Text = a;//こうするとInt型をString型に変換できませんと //で る 参考書などには数字を表示したいならTextBoxを使いなさいとよく書かれているのですが、今のプログラムはユーザーに数字の表示を変えられるといけないので、悩んでいます。 どなたかLabelにInt型を入れる方法か、ユーザーがコントロールできないようなLabelに代わるものを教えていただけないでしょうか>< よろしくお願いします。
- ベストアンサー
- C・C++・C#
お礼
返事が遅れてすみません。 コードを記述したら出来ました。 ありがとうございます。