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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

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

Q&A

解決済

1回答

5596閲覧

GridView更新処理

doremifa

総合スコア33

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

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

0グッド

0クリップ

投稿2016/11/28 05:12

###前提・実現したいこと
CommandFieldボタンを利用した更新処理で
一行目は正常に更新できるが
2行目以降の更新ボタン押下時のイベントが発生しない(ブレークポイントで確認)
※一行目はRowCommandイベントもRowUpdatingも発生する。

[実現したい操作]
1.page_loadでbind
2.修正押下で編集モードへ移行
3.Aの値を編集
4.更新ボタンで更新

[2行目を指定した時の挙動]
2.修正押下で編集モードへ移行
3.Aの値を編集
4.更新ボタンで更新できない
RowCommandイベントもRowUpdatingも発生していない
(取消ボタンのほうはRowCancelingEditとRowCommandが発生して正常に動作する)

###aspx

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit"> <Columns> <asp:BoundField DataField="A" HeaderText="A"></asp:BoundField> <asp:CommandField ButtonType="Button" ShowEditButton="true" EditText="修正" CancelText="取消" UpdateText="更新" ></asp:CommandField> <asp:ButtonField Text="ボタン" CommandName="B"></asp:ButtonField> <asp:ButtonField Text="ボタン" CommandName="C"></asp:ButtonField> <asp:BoundField DataField="D" HeaderText="D" visible=false></asp:BoundField> </Columns> </asp:GridView>

###page_load

page_load

1//sqlcmd : sqlcommand コネクションおよびコマンドテキスト入力済み 2DataSet datas = new DataSet(); 3 using (SqlDataAdapter adapt = new SqlDataAdapter()) 4 { 5 adapt.SelectCommand = sqlcmd; 6 adapt.Fill(datas); 7 } 8 9 GridView1.DataSource = datas; 10 GridView1.DataBind(); 11

###補足情報(言語/FW/ツール等のバージョンなど)
ドットネットフレームワーク4.5.2
C#
Webform

sqldatasource等はaspxファイルに設置していない

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/11/28 07:15

情報不足です。前のスレッドの質問と同じことを言うのですが・・・ データ ソース コントロール (SqlDataSource、ObjectDataSource など) を使ってない場合組み込みの更新機能は利用できないので、全て自力でコードを書いて実装しなければならないのは理解されてますよね? 質問者さんが独自に実装したコードは誰も知らないので、それを見せてもらわないと始らないと思うのですが。
退会済みユーザー

退会済みユーザー

2016/11/28 07:17

前のスレッドと関係しているというより続きなのですよね? https://teratail.com/questions/56142 では AutoGenerateEditButton を使いたい、と言いながら https://teratail.com/questions/56454 では 本当はCommandFieldボタンとかを置きたいが BottonField を使わざるを得ないと言っていて、今度は「CommandFieldボタンを利用した更新処理」と言いながらアップされたコードは依然として BottonField しか見当たらない。一体どうなっているのでしょう? 質問は細心の注意を払って正確にしていただいているでしょうか? あと https://teratail.com/questions/56546 の DataKeyNames の設定はどうしたのですか?
doremifa

2016/11/28 08:09 編集

まず、別の実装とご理解ください。今回の場合、実装した編集コードがうまく動かない、の以前にRow_Command等がなぜ実行されたりされなかったりするのでしょうかという点が疑問点になります。ハンドラ内の先頭に置いたブレークポイントが一行目を指定した場合は正常動作し、2行目以降の行を指定した場合には呼び出されすらしません。この挙動は更新ボタンのみで取消ボタンは正常にハンドラに対しアタッチします。原因にお心当たりございましたらご教示お願いいたします。 (CommandField は2列目にございます)
退会済みユーザー

退会済みユーザー

2016/11/28 08:38

一つ目のコメントに対する答えは?
doremifa

2016/11/28 09:04 編集

理解しています。また、今回のケースは独自に実装したコードへアタッチする部分ですのでコードは不要ですね。上記以外のハンドラは削除済みですし、上記ハンドラに入らないことが問題ですので。
退会済みユーザー

退会済みユーザー

2016/11/28 11:36

そういうことが言えるなら他人に聞く必要はなく自力で解決できるはず。自己解決を頑張ってみたください。
doremifa

2016/11/28 12:16

いつも大変助けていただいて感謝しております。大変信頼にたる人物である貴殿ですが貴殿の「情報不足」だけは信用しておりません。たいていのケースにおいて通じている(あるいは予想しておられる)様子であるためです。今回もその印象を受けたため上記の問答になりました。質問側はどうしても解決を急ぎたい想いが強く表にでます。その点ご理解とご容赦いただければ幸いです。
退会済みユーザー

退会済みユーザー

2016/11/28 12:36

信用してないとまで言われては・・・ 今後あなたの質問いは関わらないようにするのがお互いよさそうですね。
guest

回答1

0

自己解決

自己解決しました。
ViewStateサイズの問題でした。

投稿2016/11/28 12:09

doremifa

総合スコア33

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問