C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ASP.NETのGridViewで列幅の変更

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■96918 / inTopicNo.1)  ASP.NETのGridViewで列幅の変更
  
□投稿者/ たかし (1回)-(2021/03/03(Wed) 13:09:53)

分類:[ASP.NET (VB)] 

久々の質問になります。
やりたいことはGridViewの列幅の変更です。
ウェブで検索しますと「AllowColSizing」プロパティをtrue に設定すると書かれているのですが、
私の環境(VisulStudio2019)では、プロパティウィンドウを見ても「AllowColSizing」プロパティそのものがありません。
これは一体どういうことなのでしょうか?
初歩的な質問ですがよろしくおねがいします。
引用返信 編集キー/
■96919 / inTopicNo.2)  Re[1]: ASP.NETのGridViewで列幅の変更
□投稿者/ WebSurfer (2190回)-(2021/03/03(Wed) 13:34:04)
No96918 (たかし さん) に返信

> ウェブで検索しますと「AllowColSizing」プロパティをtrue に設定すると書かれているのですが、
> 私の環境(VisulStudio2019)では、プロパティウィンドウを見ても「AllowColSizing」プロパティそのものがありません。
> これは一体どういうことなのでしょうか?

それはサードパーティ(GrapeCity?)製品の話ではないのですか? girdview AllowColSizing でググると
そういう記事がヒットします。


引用返信 編集キー/
■96920 / inTopicNo.3)  Re[2]: ASP.NETのGridViewで列幅の変更
□投稿者/ 魔界の仮面弁士 (2980回)-(2021/03/03(Wed) 17:10:20)
No96918 (たかし さん) に返信
> やりたいことはGridViewの列幅の変更です。

ユーザーにリサイズ操作を許可したいのでしょうか。
それともプログラムで固定幅を与えたいのでしょうか。


あまり詳しくは無いのですが、ASP.NET GridViewは、列のサイズ変更をサポートしていないようです。
対応策についてざっと検索してみたところ、列幅変更機能を提供する jQuery プラグインが見つかりました。
https://www.c-sharpcorner.com/UploadFile/jayendra/column-resizing-in-gridview/

上記からリンクされていたダウンロードサイトはデッドリンクになっていましたが、
現在は下記で配布されているようです。
http://bacubacu.com/colresizable/#samples


No96919 (WebSurfer さん) に返信
> それはサードパーティ(GrapeCity?)製品の話ではないのですか? girdview AllowColSizing でググると
> そういう記事がヒットします。

Infragistics の WebDataGrid
https://jp.infragistics.com/help/aspnet/webdatagrid-column-resizing

GrapeCity の C1GridView
https://demo.grapecity.com/c1/aspnet/controlexplorer/C1GridView/ColumnResizing.aspx
https://docs.grapecity.com/help/c1/aspnet/aspwij_gridview/#C1.Web.Wijmo.Controls.4~C1.Web.Wijmo.Controls.C1GridView.C1GridView~AllowColSizing.html
引用返信 編集キー/
■96921 / inTopicNo.4)  Re[1]: ASP.NETのGridViewで列幅の変更
□投稿者/ 大谷刑部 (125回)-(2021/03/04(Thu) 10:24:12)
No96918 (たかし さん) に返信
> ウェブで検索しますと「AllowColSizing」プロパティをtrue に設定すると書かれているのですが、
> 私の環境(VisulStudio2019)では、プロパティウィンドウを見ても「AllowColSizing」プロパティそのものがありません。

ちなみに.netのバージョンはどのバージョンを使ってますか?
VS2019の年末にリリースされているバージョンだと、デフォルトのフレームワークが.Net5になっていて、.Net Coreと.NetFrameworkが.Net Core寄りに仕様が統合されているため、
.NetFrameworkで開発してたアプリをプロジェクトの新規作成で作り直そうとすると色々支障がでます。

WebBrowserコントロール:参照設定で追加してもツールボックスに出てこない。(IEベースの技術だから当然と言えば当然?)
SQLClientの設定 :NuGet経由でインストールの手順を踏まないと、プロジェクトでクラスを認識できない。
WebForms :機能自体が廃止

わかってるのはこれくらいですが、使えない理由が.Net5に起因する問題かどうか切り分けたいので、適用しているフレームワークを教えてください。
.NetFramework4.xのまま既存プロジェクトとして開いた場合には上記のバージョン非互換問題は出ません。ただし、途中から.Net5には代えれないようです。
引用返信 編集キー/
■96922 / inTopicNo.5)  Re[2]: ASP.NETのGridViewで列幅の変更
□投稿者/ たかし (2回)-(2021/03/04(Thu) 13:56:05)
WebSurfer様、魔界の仮面弁士様、いつもお世話様です。

>ユーザーにリサイズ操作を許可したいのでしょうか。
>それともプログラムで固定幅を与えたいのでしょうか。

後者です。
最近ASP.NETに手を染めはじめました。
VB.NETであればDataGridViewに列のプロパティで「Width」というのがありますが、
ASP.NETではこんな簡単なこともできないのだということが分かり、多少がっかりです。

大谷刑部様、
ヘルプを開くとNet Framework Version 4.8.0484となっていますが。
これでなにか解決しますか?
引用返信 編集キー/
■96923 / inTopicNo.6)  Re[2]: ASP.NETのGridViewで列幅の変更
□投稿者/ 魔界の仮面弁士 (2981回)-(2021/03/04(Thu) 14:10:26)
No96921 (大谷刑部 さん) に返信
> .Net Coreと.NetFrameworkが.Net Core寄りに仕様が統合されているため、
.NET Framework からの API 移植は、.NET Core 3.0 の段階で区切りを迎えていますね。
https://ufcpp.net/blog/2019/10/netcore3concludesfxporting/


> VS2019の年末にリリースされているバージョンだと、
> デフォルトのフレームワークが.Net5になっていて、

年末というと、バージョン 16.8.3 あたりでしょうか。

.NET Framework 系のプロジェクト テンプレートと
.NET Core 系のプロジェクト テンプレートを
取り違えていたのではありませんか?

それに .NET Core 系のプロジェクトの場合、既定のフレームワーク バージョンは
Current ではなく LTS なバージョンを指していたように思うのですが、
VS2019 のバージョンや言語(VB/C#)にもよるのかな…。


> 途中から.Net5には代えれないようです。

サポート期限の問題もあるので、.NET 5 にはそもそも手を出しにくいですね。
現時点で業務開発なら、.NET Framework 4.8 か .NET Core 3.1 かなぁ。


.NET 6 [LTS] 現在は Preview 1。サポート期限は 2024年10月頃かな?
.NET 5 [Current] 2022年2月頃にサポート期限切れ
.NET Core 3.1 [LTS] 2022年12月3日にサポート期限切れ
.NET Core 3.0 [EOL] (サポート期限切れ)
.NET Core 2.2 [EOL] (サポート期限切れ)
.NET Core 2.1 [LTS] 2021年8月3日にサポート期限切れ
.NET Core 1.1 [EOL] (サポート期限切れ)
.NET Core 1.0 [EOL] (サポート期限切れ)
引用返信 編集キー/
■96924 / inTopicNo.7)  Re[3]: ASP.NETのGridViewで列幅の変更
□投稿者/ 大谷刑部 (126回)-(2021/03/04(Thu) 14:45:09)
No96923 (魔界の仮面弁士 さん) に返信

質問者さんの話とはそれてはしまいますが

> ■No96921 (大谷刑部 さん) に返信
>>.Net Coreと.NetFrameworkが.Net Core寄りに仕様が統合されているため、
> .NET Framework からの API 移植は、.NET Core 3.0 の段階で区切りを迎えていますね。
> https://ufcpp.net/blog/2019/10/netcore3concludesfxporting/

らしいですね。なので、新人の研修に使うのに、VS2019の最新版を入れさせて新規プロジェクトを作ってみたのですが、
4.xx系とあまりに常識が違い過ぎたので、やむを得ず2017を再インストールして続けることにしました。


>>VS2019の年末にリリースされているバージョンだと、
>>デフォルトのフレームワークが.Net5になっていて、
>
> 年末というと、バージョン 16.8.3 あたりでしょうか。

16.8.6、おっしゃってるバージョンの次と思います。
このバージョンだと、新規プロジェクトの作成で4.xxが選べません。
4.xx系で作成した既存プロジェクトは.NetFrameworkで正常に動きますし、ツールボックスに反映されないとかもないです。

>
> .NET Framework 系のプロジェクト テンプレートと
> .NET Core 系のプロジェクト テンプレートを
> 取り違えていたのではありませんか?

それはないですね。フォームアプリ(.NetFrameWork)を選んでいるので。

>
> それに .NET Core 系のプロジェクトの場合、既定のフレームワーク バージョンは
> Current ではなく LTS なバージョンを指していたように思うのですが、
> VS2019 のバージョンや言語(VB/C#)にもよるのかな…。

というより、ひとつ前のバージョンまではデフォルトフレームワークが4.8になってた気がするので、
16.8.6で4.xxをサポートを手薄くして、5への移行を促進させようとした意図を感じます。
個人的にはMSの失策という印象は持ちますが。
確かに既存プロジェクトで問題が起きないので、実際の現場の開発でトラブルが発生するケースは少ないかもしれませんが、
新規プロジェクトで作ってみようとしたら、結構対応に時間がかかった印象です。
.Net Coreに慣れてる人ならそんなに手間取らないんでしょうけど。

>>途中から.Net5には代えれないようです。
>
> サポート期限の問題もあるので、.NET 5 にはそもそも手を出しにくいですね。
> 現時点で業務開発なら、.NET Framework 4.8 か .NET Core 3.1 かなぁ。

私も、触ってみてそういう印象を受けました。
仮にお客さんが.Net5で開発しようと言ったら止めるつもりです。


引用返信 編集キー/
■96925 / inTopicNo.8)  Re[3]: ASP.NETのGridViewで列幅の変更
□投稿者/ 大谷刑部 (127回)-(2021/03/04(Thu) 14:52:31)
No96922 (たかし さん) に返信
> WebSurfer様、魔界の仮面弁士様、いつもお世話様です。
>
> VB.NETであればDataGridViewに列のプロパティで「Width」というのがありますが、
> ASP.NETではこんな簡単なこともできないのだということが分かり、多少がっかりです。

WindowsFormsとWebでのGridViewの仕様の違いな気はしますが。
少なくともVBという言語の問題ではないと思います

> ヘルプを開くとNet Framework Version 4.8.0484となっていますが。

であれば、Frameworkのバージョン非互換問題ではないということです。
引用返信 編集キー/
■96926 / inTopicNo.9)  Re[3]: ASP.NETのGridViewで列幅の変更
□投稿者/ 大谷刑部 (128回)-(2021/03/04(Thu) 15:25:39)
No96922 (たかし さん) に返信
> WebSurfer様、魔界の仮面弁士様、いつもお世話様です。

> VB.NETであればDataGridViewに列のプロパティで「Width」というのがありますが、

HeaderStyle.Widthは試してみましたか?
引用返信 編集キー/
■96927 / inTopicNo.10)  Re[3]: ASP.NETのGridViewで列幅の変更
□投稿者/ WebSurfer (2191回)-(2021/03/04(Thu) 15:37:11)
No96922 (たかし さん) に返信

> >ユーザーにリサイズ操作を許可したいのでしょうか。
> >それともプログラムで固定幅を与えたいのでしょうか。
>
> 後者です。
> 最近ASP.NETに手を染めはじめました。
> VB.NETであればDataGridViewに列のプロパティで「Width」というのがありますが、
> ASP.NETではこんな簡単なこともできないのだということが分かり、多少がっかりです。

それは探し方の問題です。至れり尽くせりの GridView にそういう機能がないはずはないと思った方が
良さそうです。

デザイン画面で[列の編集]を選び、表示された「フィールド」ダイアログの[選択されたフィールド]
の中から幅を設定したい列を選んだら、その右の表示されるプロパティでスタイルをいろいろ設定できま
す。そのいろいろの中に With もあります。
引用返信 編集キー/
■96928 / inTopicNo.11)  Re[3]: ASP.NETのGridViewで列幅の変更
□投稿者/ WebSurfer (2192回)-(2021/03/04(Thu) 17:55:56)
No96922 (たかし さん) に返信

GridView は html, css, javascript などの知識が全くなくてもそれなりの Web アプリが
作れるというメリットがありますが、それが逆にあだとなってスタイルの設定は分かり難く
かつ自由度も低いという問題があると思います。

なので、質問者さんが html と css の知識をある程度お持ちであれば、GridView ではなく
て ListView を使って自分の好みに html をデザインし、自分で css を書いてそれに適用
する方が自由度が高いのでお勧めです。

本気で web アプリの勉強をするなら html, css, javascript は避けて通れないので、デ
ザインのエキスパートになる必要は無くても、基本的な知識は持っておいた方が良さそう
です。
引用返信 編集キー/
■96929 / inTopicNo.12)  Re[4]: ASP.NETのGridViewで列幅の変更
□投稿者/ 魔界の仮面弁士 (2982回)-(2021/03/04(Thu) 18:06:40)
2021/03/04(Thu) 18:17:51 編集(投稿者)

No96922 (たかし さん) に返信
> 分類:[ASP.NET (VB)] 
> VB.NETであれば

最初から VB.NET の質問のはずですよね。


> DataGridViewに列のプロパティで「Width」というのがありますが、

GridView … System.Web.UI.WebControls 名前空間
DataGrid … System.Windows.Forms 名前空間
DataGridView … System.Windows.Forms 名前空間
Grid … System.Windows.Controls 名前空間


>>ユーザーにリサイズ操作を許可したいのでしょうか。
>>それともプログラムで固定幅を与えたいのでしょうか。
>
> 後者です。

ちなみに、他社のグリッド系製品の AllowColSizing プロパティは、
「ユーザーによる列のサイズ変更を許可するかどうか」を
指定するための物だったりします。


No96924 (大谷刑部 さん) に返信
> 質問者さんの話とはそれてはしまいますが

デザイン時の固定幅指定の件については、
既にお二方が答えてくださいましたね。


>>年末というと、バージョン 16.8.3 あたりでしょうか。
> 16.8.6、おっしゃってるバージョンの次と思います。

今年初め(2021/01/12) に 16.8.4 がリリースされたので、
それで「年末」というのはおかしいですね。

もしかしたら 16.7.6 (2020/02/13 リリース)の勘違いだったりとか?
https://docs.microsoft.com/ja-jp/visualstudio/releases/2019/servicing


> VS2019の最新版を入れさせて新規プロジェクトを作ってみたのですが、
> 4.xx系とあまりに常識が違い過ぎたので、やむを得ず2017を再インストールして続けることにしました。
> このバージョンだと、新規プロジェクトの作成で4.xxが選べません。

ここでいう「4.xx系」というのは、ASP.NET 4.x のことでしょうか。
それとも .NET Framework 4.x のことでしょうか。

.NET 5 の話をしていたということは、.NET Framework 版の ASP.NET Core との
差異のことを指しているのかも知れませんが、自分はあまり詳しくないので、
この辺の「常識」の違いというのが、何を指すのか良く分からなかったです。
(ASP.NET Core が .NET Framework をサポートしていたのは、VS2015 の頃でしたっけ?)


> というより、ひとつ前のバージョンまではデフォルトフレームワークが4.8になってた気がするので、

「ひとつ前のバージョン」が VS2017 を指すのか、VS2019 の v16.7 系統を指すのかはさておき、
それは恐らく、「前回選択した時のバージョン」を指していたのだと思います。

また、.NET Framework 4.8 の登場は 2019 年であることから、
VS2017 で開発する場合には対応する Developer Pack の追加インストールが必要なはずです。


>>.NET Framework 系のプロジェクト テンプレートと
>>.NET Core 系のプロジェクト テンプレートを
>>取り違えていたのではありませんか?
>
> それはないですね。フォームアプリ(.NetFrameWork)を選んでいるので。

.NET Framework が
.NetFrameWork になっている時点で、かなり疑わしいです……。


ひとまず手元の VS2017(v15.9.33) と VS2019(v16.9.0) で抜粋してみました。

インストール済みの機能によって増減する可能性もあるので、あくまで参考程度に。
(Web サービス系のプロジェクトは除外しています)


2017 2019 プロジェクト テンプレート
== == =========================
有り __ "ASP.NET 空の Web サイト"
__ 有り "ASP.NET Core (空)"
有り __ "ASP.NET Web フォーム サイト"
有り __ "ASP.NET Web サイト (Razor v3)"
有り 有り "ASP.NET Web アプリケーション (.NET Framework)"
有り __ "ASP.NET Core Web アプリケーション"
__ 有り "ASP.NET Core Web アプリ"
__ 有り "ASP.NET Core Web アプリ (Model-View-Controller)"
__ 有り "ASP.NET Core Web App (Model-View-Controller)"
有り 有り "Windows フォーム アプリケーション (.NET Framework)"
__ 有り "Windows フォーム アプリ"
引用返信 編集キー/
■96930 / inTopicNo.13)  Re[5]: ASP.NETのGridViewで列幅の変更
□投稿者/ たかし (3回)-(2021/03/04(Thu) 19:01:58)
WebSurfer様、魔界の仮面弁士様、大谷刑部様、どうもありがとうございました。

HeaderStyleのWidthプロパティで設定可能であることが分かりました。
解決といたします。
また分からないことがあったらよろしくおねがいします。

>本気で web アプリの勉強をするなら html, css, javascript は避けて通れないので、デ
>ザインのエキスパートになる必要は無くても、基本的な知識は持っておいた方が良さそう
>です。

ぜひ勉強したいと思います。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ