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

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

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

Re[2]: C#WebformsGridViewボタン機能追加


(過去ログ 177 を表示中)

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

■101753 / inTopicNo.1)  C#WebformsGridViewボタン機能追加
  
□投稿者/ トマト太郎 (1回)-(2023/04/16(Sun) 09:23:58)

分類:[.NET 全般] 

 C#WebformsGridViewで、ある特定の列にのみボタン機能を実装する方法がわからなくて困っています。

↓aspx.cs↓
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Npgsql;

namespace グリッドビューテスト
{
public partial class グリッドビューテスト : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
NpgsqlConnection con = new NpgsqlConnection("Server=localhost; Port=5432; User Id=postgres; Password=×××; Database=postgres; SearchPath=public");
con.Open();

string sqlquery = @"SELECT o.order_date, c.name, oi.product_name, oi.quantity, oi.price " +
"FROM orders o " +
"JOIN customers c ON o.customer_id = c.id " +
"JOIN order_items oi ON o.id = oi.order_id " +
"JOIN products p ON oi.product_name = p.name " +
"WHERE o.order_date BETWEEN '2022-01-01' AND '2022-12-31 '" +
"AND p.name = 'iPhone';";
NpgsqlCommand sqlcomm = new NpgsqlCommand();
sqlcomm.CommandText = sqlquery;
sqlcomm.Connection = con;


DataTable dt = new DataTable();
NpgsqlDataAdapter npd = new NpgsqlDataAdapter(sqlcomm);
npd.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}


}
}

↓aspx↓
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="グリッドビューテスト.aspx.cs" Inherits="グリッドビューテスト.グリッドビューテスト" %>

<!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>
</div>
<asp:GridView ID="GridView1" runat="server">

</asp:GridView>

</form>
</body>
</html>

 インターネットで調べましたところ、グリッドビューで生成された表の右端もしくは左端に、「選択」「削除」「ダウンロード」などのボタンを実装する記事は見つけましたが、データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する記事は見つかりませんでした。

 あげさせていただきましたコードは、テストのものですが、実行後、生成されたグリッドビューの、「name」列の値が、ボタン化され、それぞれの名前の人を押すと、ポップアップが出る仕様を実現しようとしています。
 どうすれば実現できるでしょうか?ご存じの方がいらっしゃいましたら、ご教示ください。よろしくお願いいたします。
引用返信 編集キー/
■101754 / inTopicNo.2)  Re[1]: C#WebformsGridViewボタン機能追加
□投稿者/ WebSurfer (2665回)-(2023/04/16(Sun) 10:28:40)
No101753 (トマト太郎 さん) に返信

開発環境を書いてください。(例: Windows 10 の Visual Studio 2022 で
ASP.NET Web Forms アプリをターゲットフレームワーク .NET Framework 4.8
で作っています・・・とか)

> C#WebformsGridViewで、ある特定の列・・・

「C#WebformsGridView」って何ですか? 正確に正しく書いてもらえませんか。

> それぞれの名前の人を押すと、ポップアップが出る仕様・・・

「ポップアップ」って何ですか? そこも最初からどのようにするか見通しぐ
らいは立てておかないと、ボタンを実装できてもその苦労が無駄になるかもし
れません。

引用返信 編集キー/
■101755 / inTopicNo.3)  Re[2]: C#WebformsGridViewボタン機能追加
□投稿者/ トマト太郎 (2回)-(2023/04/16(Sun) 11:05:11)
No101754 (WebSurfer さん) に返信
> ■No101753 (トマト太郎 さん) に返信
>
> 開発環境を書いてください。(例: Windows 10 の Visual Studio 2022 で
> ASP.NET Web Forms アプリをターゲットフレームワーク .NET Framework 4.8
> で作っています・・・とか)
>

 失礼しました。開発環境は、

 Windows11のVisualStudio2019で、ASP.NET Web Forms アプリをターゲットフレームワーク .NET Framework 4.8

で作っています。

>>C#WebformsGridViewで、ある特定の列・・・
>
> 「C#WebformsGridView」って何ですか? 正確に正しく書いてもらえませんか。
>
 プログラミング言語であるC#の、WebフォームであるWebformsの、コントロールであるGridViewです。

>>それぞれの名前の人を押すと、ポップアップが出る仕様・・・
>
> 「ポップアップ」って何ですか? そこも最初からどのようにするか見通しぐ
> らいは立てておかないと、ボタンを実装できてもその苦労が無駄になるかもし
> れません。
>
 「ポップアップ」とは、コンピュータの画面で、飛び出るような動きで最前面に現れるウィンドウなどの表示要素です。
 表示されたグリッドビューの、ある特定の列の、ボタン化された値を押すと、「ポップアップ」が出ます。
 「ポップアップ」は、alertで出します。
 alertの書き方は、
 
 Response.Write("<script>alert('アラートはこのように表示できます。')</script>");

 です。

 よろしくお願いいたします。

引用返信 編集キー/
■101756 / inTopicNo.4)  Re[3]: C#WebformsGridViewボタン機能追加
□投稿者/ WebSurfer (2666回)-(2023/04/16(Sun) 12:33:26)
No101755 (トマト太郎 さん) に返信

>  「ポップアップ」とは、コンピュータの画面で、飛び出るような動きで最前面に現れるウィンドウなどの表示要素です。
>  表示されたグリッドビューの、ある特定の列の、ボタン化された値を押すと、「ポップアップ」が出ます。
>  「ポップアップ」は、alertで出します。
>  alertの書き方は、
>  
>  Response.Write("<script>alert('アラートはこのように表示できます。')</script>");
>
>  です。


name 列にボタンを表示して、それをクリックするとポップアップが現れるというシナリオから
自分が想像するのは、例えばポップアップに編集画面を表示してユーザーが編集した結果を
PostgreSQL に反映するとかですが、そういうことではないのですか? そうだとすると alert
ではできませんけど。

編集とかではなくて、もっと簡単なこと、例えば name に関する何らかの情報を表示するだ
けだとしても alert は不適切だと思いますけど。
引用返信 編集キー/
■101757 / inTopicNo.5)  Re[4]: C#WebformsGridViewボタン機能追加
□投稿者/ トマト太郎 (3回)-(2023/04/16(Sun) 14:20:05)
No101756 (WebSurfer さん) に返信
> ■No101755 (トマト太郎 さん) に返信
>
>> 「ポップアップ」とは、コンピュータの画面で、飛び出るような動きで最前面に現れるウィンドウなどの表示要素です。
>> 表示されたグリッドビューの、ある特定の列の、ボタン化された値を押すと、「ポップアップ」が出ます。
>> 「ポップアップ」は、alertで出します。
>> alertの書き方は、
>> 
>> Response.Write("<script>alert('アラートはこのように表示できます。')</script>");
>>
>> です。
>
>
> name 列にボタンを表示して、それをクリックするとポップアップが現れるというシナリオから
> 自分が想像するのは、例えばポップアップに編集画面を表示してユーザーが編集した結果を
> PostgreSQL に反映するとかですが、そういうことではないのですか? そうだとすると alert
> ではできませんけど。
>
> 編集とかではなくて、もっと簡単なこと、例えば name に関する何らかの情報を表示するだ
> けだとしても alert は不適切だと思いますけど。

 そうなのですね。alertというのは、あくまでテストの動きとなります。
 せっかくアドバイスいただきました、alertでも、Label1.Textに値を挿入する、でもなんでもよいのです。
 私が知りたいのは、最初に質問いたしました

 「データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する」

 方法と実際のコードです。
 それについて、お教えいただけますでしょうか?
 実際のコードをいただきましたら、実行したく存じます。仮定のお話は結構ですので、実際のコードを教えてください。
 実際のコードがわからないのでしたら、お忙しそうですので、ご回答は結構です。よろしくお願いいたします。  
 
引用返信 編集キー/
■101758 / inTopicNo.6)  Re[5]: C#WebformsGridViewボタン機能追加
□投稿者/ WebSurfer (2667回)-(2023/04/16(Sun) 14:39:33)
No101757 (トマト太郎 さん) に返信

>  そうなのですね。alertというのは、あくまでテストの動きとなります。
>  せっかくアドバイスいただきました、alertでも、Label1.Textに値を挿入する、でもなんでもよいのです。
>  私が知りたいのは、最初に質問いたしました
>
>  「データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する」
>
>  方法と実際のコードです。
>  それについて、お教えいただけますでしょうか?

GridView の当該列を ButtonField にするか、TemplateField にしてその中に Button コントロール
を配置する。

コードは自分で考えて書いて、分からなければまた質問してください。
引用返信 編集キー/
■101759 / inTopicNo.7)  Re[6]: C#WebformsGridViewボタン機能追加
□投稿者/ トマト太郎 (4回)-(2023/04/16(Sun) 15:07:51)
No101758 (WebSurfer さん) に返信
> ■No101757 (トマト太郎 さん) に返信
>
>> そうなのですね。alertというのは、あくまでテストの動きとなります。
>> せっかくアドバイスいただきました、alertでも、Label1.Textに値を挿入する、でもなんでもよいのです。
>> 私が知りたいのは、最初に質問いたしました
>>
>> 「データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する」
>>
>> 方法と実際のコードです。
>> それについて、お教えいただけますでしょうか?
>
> GridView の当該列を ButtonField にするか、TemplateField にしてその中に Button コントロール
> を配置する。
>
> コードは自分で考えて書いて、分からなければまた質問してください。

 ボタン化=ButtonFieldですが、お聞きしても解決にいたりませんので、解決済みとさせていただきます。
 無理なことをお伺いし、すみませんでした。
解決済み
引用返信 編集キー/
■101760 / inTopicNo.8)  Re[7]: C#WebformsGridViewボタン機能追加
□投稿者/ WebSurfer (2668回)-(2023/04/16(Sun) 15:28:56)
No101759 (トマト太郎 さん) に返信

>  ボタン化=ButtonFieldですが、

いえ、ButtonField を使うか TemplateFiled を使うかはボタンクリックで何を
したいかによります。

何をしたいのかを書かないで、単に

> 「データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する」

だけ知りたいと言うのでそこを教えたのです。教えたにも関わらず、

> お聞きしても解決にいたりませんので、

というのはあなたの問題と認識してください。

> 無理なことをお伺いし、すみませんでした。

いえ、無理なのはあなたにとってであり、私にとっては無理ではありません。

最初の私のレスで、

> そこも最初からどのようにするか見通しぐらいは立てておかないと、ボタンを実装
> できてもその苦労が無駄になるかもしれません。

と言ったように、ボタンクリックで何がしたいかの見通しが分かれば、それに応じた
最適解は出せます。
引用返信 編集キー/
■101761 / inTopicNo.9)  Re[1]: C#WebformsGridViewボタン機能追加
□投稿者/ 伝説のカレー (92回)-(2023/04/16(Sun) 16:55:31)
No101753 (トマト太郎 さん) に返信

こんな感じです

<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="boss">
<ItemTemplate>
<asp:Button ID="boss" runat="server" Text='<%# Eval("name") %>' OnClientClick='<%# Eval("name", "alert(\"{0}\")") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

RowDataBoundイベントで動的にボタンを作ることもできますけどデザイナでやるのが簡単かなと思いました
引用返信 編集キー/
■101762 / inTopicNo.10)  Re[2]: C#WebformsGridViewボタン機能追加
□投稿者/ トマト太郎 (6回)-(2023/04/16(Sun) 18:01:14)
No101761 (伝説のカレー さん) に返信
> ■No101753 (トマト太郎 さん) に返信
>
> こんな感じです
>
> <asp:GridView ID="GridView1" runat="server">
> <Columns>
> <asp:TemplateField HeaderText="boss">
> <ItemTemplate>
> <asp:Button ID="boss" runat="server" Text='<%# Eval("name") %>' OnClientClick='<%# Eval("name", "alert(\"{0}\")") %>' />
> </ItemTemplate>
> </asp:TemplateField>
> </Columns>
> </asp:GridView>
>
> RowDataBoundイベントで動的にボタンを作ることもできますけどデザイナでやるのが簡単かなと思いました

ありがとうございます。実のところ、RowDataBoundイベントで、実現することができました。
具体的なアドバイスありがとうございました。また、何かありましたら、よろしくお願いいたします。
引用返信 編集キー/
■101763 / inTopicNo.11)  Re[8]: C#WebformsGridViewボタン機能追加
□投稿者/ トマト太郎 (7回)-(2023/04/16(Sun) 18:15:19)
No101760 (WebSurfer さん) に返信
> ■No101759 (トマト太郎 さん) に返信
>
>> ボタン化=ButtonFieldですが、
>
> いえ、ButtonField を使うか TemplateFiled を使うかはボタンクリックで何を
> したいかによります。
>
> 何をしたいのかを書かないで、単に
>
>>「データベースからデータを読込み、表示されたグリッドビューのある特定の列の値にのみボタンを実装する」
>
> だけ知りたいと言うのでそこを教えたのです。教えたにも関わらず、
>
>>お聞きしても解決にいたりませんので、
>
> というのはあなたの問題と認識してください。
>
>>無理なことをお伺いし、すみませんでした。
>
> いえ、無理なのはあなたにとってであり、私にとっては無理ではありません。
>
> 最初の私のレスで、
>
>>そこも最初からどのようにするか見通しぐらいは立てておかないと、ボタンを実装
>>できてもその苦労が無駄になるかもしれません。
>
> と言ったように、ボタンクリックで何がしたいかの見通しが分かれば、それに応じた
> 最適解は出せます。


聞き方があいまいで、失礼いたしました。
今回は解決しましたので、また次回よろしくお願いいたします。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -