• ベストアンサー

ASP.NET 2.0 GridViewの更新ボタンについて

いつもお世話になっています。 GridViewでItemTemplateでGridViewの中にボタンを作っています。 それで、編集ボタンを押して、データを書き換え更新ボタンを押すのですが、更新されません。 どこか間違っていじったのかもしれません。ここじゃないかと思うところありましたら、回答お願いします。 (更新ボタンのCommandNameはUpdateになっています。) <<環境>> Client:Vista Server:Server2003 VisualStudio2005 SP1

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

更新時は、EditTemplateが使われますが、EditTemplateの 内容は定義されていますか? <asp:TemplateField HeaderText="<%$ Resources:Resource, RssTitle %>">   <ItemTemplate>     <asp:Label ID="Label1" runat="server" Text='<%# Eval("DB項目名") %>'></asp:Label>   </ItemTemplate>   <EditItemTemplate>     <asp:TextBox ID="TitleEditBox" runat="server" Text='<%# Eval("DB項目名") %>'></asp:TextBox>   </EditItemTemplate> </asp:TemplateField> また、更新しようとしている項目のTextBox等のコントロールの EnableViewStateは、Trueになっていますか?

ape5
質問者

お礼

回答ありがとうございます。 こちらで、もう一度検証したところ、TemplateFieldに変換する前にすでに更新処理できませんでした。 たぶんBoundFieldあたりの書き換えしてしまっておかしくなったのかもしれません。 ここで、一旦質問は閉じようと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ASP.Net GridView DataBind

    お世話になります。 FormView の中に いくつかのコントロールと ボタンとGridView を配置しております。 ボタンを押すと、GridView のレコードが追加するような UpDate文を実行するようになっています。 GridViewのデータも一緒に新しいデータとともに表示を更新させたいと思うのですが、 GridView の DataBindメソッドをどうやって呼び出していいかわかりません。 名前は GridView1 なのですが、Button1_Click メソッドの中で、GridView1 の候補が出ないですし、 どうやって定義して、実行すればいいのかわかりません。 何卒よろしくお願い申し上げます。

  • ASP.Net GridView Select

    大変お世話になっております。 GridView のテンプレートにボタンを2つ配置しております。 A と B どちらのボタンのCommandName にも Select を記述して 選択された行のあるフィールドの値を取得したいのですが、 GridView1_SelectedIndexChanging で、e.NewSelectedIndex を使い該当セルを見つけることはできるのですが、AとBのボタンそれぞれで違うことをしたいのです。 イメージ的にいいますと     If CommnadButton.Name = "A" then         Aでやりたいこと     else If CommandButton.Name = "B" then         Bでやりたちこと     end if CommnadButton.Name なんてメソッドもプロパティも存在しないものですが、 SelectedIndexChanging イベントの中で どのボタンが押されてこのイベントが実行されるのかが、わかる方法がございましたら、ぜひご教授いただけますと大変助かる次第でございます。 何卒よろしくお願い申し上げます。

  • ASP.NET、GridViewコントロールの各コマンドについて。

    開発環境:MS VisualStudio 2008 MS SQLserver 2005 ASP.NETで出退勤管理システムの開発をしております。 GridViewコントロールの編集ボタンについて質問です。 GridViewコントロールの編集ボタンを利用するには、 aspxファイルのデータソースのところにUPDATEコマンドを設定するかと思うのですが、 Updatecommand="Update [timecard] Set" + "[DATE]=@DATE" + ",[SYUKKIN]=@SYUKKIN" + ",[TAIKIN]=@TAIKIN" + ",[REST]=@REST" + ",[ZITUDOU]=@ZITUDOU" + ",[S_BIKOU]=@S_BIKOU" + ",[T_BIKOU]=@T_BIKOU" + ",[SUBMIT_DATE]=@SUBMIT_DATE" + ", [AMEND_DATE]= <%$DateTime.Now.ToShortDateString %>" //←これ + " ,[ADMIT]=@ADMIT " + "where [NAME]=@NAME" こんな風にAMEND_DATEには毎回、編集した時間を入れていきたいのです。 …が、実行時に「'<' 付近に不適切な構文があります」と怒られてしまいます。 <%$ ~~ %>があやしいんじゃないかなというのは思うのですが、自分ではわかりません。。 どなたかわかる方いらっしゃいましたらお教えください。 よろしくお願いします! 説明不足でしたら補足しますので、おっしゃってください。

  • GridViewの項目編集(初歩)

    いわゆるレガシー言語専門の技術者です。 事情があって、ASP.NETとVisualStudio2008(C#)でWebアプリを知人から頼まれて作っています。 クライアント/サーバ型のシステム開発歴は長いのですが、Web系は全くと言って良いほど経験がありません(個人商店のホームページを作ったくらいです)。 要件は以下のようになります。 検索条件を入力 →DBのマスタ検索 →対象データをGridViewに一覧表示 →項目を直接編集  ※解説サイトによくある、GridViewにボタンが配置してあって、ボタン押下で編集モードに移行する動きはNGです。あくまでも直接編集できなければいけません。 →入力後、更新ボタン押下により、画面情報でDB一括更新 この、GridViewの項目を直接編集するには、何というコントロールを使い、データベースと連動させるにはどうすれば良いのかが、さっぱりわかりません。 自力で頑張ってみたのですが、DBの値をGridViewに表示するには、asp:BoundField を使い、DataField にDBの項目名を指定すれば「表示」はされるところまでは確認できました。 ただ、これだと「編集」が出来ない...どうやら、asp:TemplateField というものを使うようだが、DBとバインドさせる方法は?編集可能にするには? ネットで色々と調べたのですが、(理解力が低いせいもあり)そのものズバリな表現で説明しているサイトは殆どなく、頭がパニックで力が尽きてしまいそうです。 私はWeb開発には向いていないのかも知れませんが、諸事情により、今回は何としてもやり遂げないといけません。 どなたか助けてください、よろしくお願いします。

  • GridViewを自動的にスクロールするには

    Aクライアントはデータをサーバーに送信し、サーバーは蓄積します。 Bクライアントはサーバーに蓄積されたデータに変化があれば, その都度GridViewで常時表示しています。 GridViewには新しいデータを下の行に、古いデータを上の行にという順序で表示しています。 GridViewにはスクローバーを付けています。 GridViewではいつも最新のデータを表示させたいので、いつも最下行を表示させるようにしたい。 つまり、新しい情報を1行表示させるたびに、1行スクロールアップさせたいのですが、スクロールの方法がわかりません。 言語はJavaScriptを使用しています。よろしくお願いします。

  • ASP.Net GridView TextBoxで

    大変お世話になります。 FormViewにあるGridView を編集状態にした状態で、 Dim Gv As GridView = FormView1.Row.FindControl("GridView1") TextBoxのデータを変更した際に、他のTextBoxの内容を変更したいのですが、 この場合、GridViewのTextBoxのTextChangedイベントを使用しています。 ここで問題なのが、 (1) GridVew の行の Index の取得 (2) TextChangedイベント内での FindControl の記述の仕方 上記のやり方がよくわかりません。 ボタンを使用した場合の Index の取得などはわかるのですが、 GridView1_RowCreated イベントで Dim A As Button = CType(e.Row.FindControl("A"), Button) A.CommandArgument = e.Row.RowIndex.ToString() 上記(1)、(2)はどうしたらよいのかわかりません。 編集状態にあるGridView の Index の取得方法とローカル関数でのFindCotrol メソッドの やり方など、お分かりになる方がいらっしゃいましたら 何卒ご教授いただければと存じます。

  • ASP GridViewの高さを固定にするには?

    GridViewで全角10文字がちょうど表示できる幅を設定した場合、 10文字を超えるデータを表示しようとするととセル内で折り返してしまいます。 折り返しせず、10文字だけ表示するにはどうすればいいのでしょうか? <div id="containerData" class="containerData" onscroll="containerHeader.scrollLeft=this.scrollLeft;" runat="server"> <asp:UpdatePanel ID="UpdPlView" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView ID="grdList" runat="server" CellPadding="0" AutoGenerateColumns="False" DataSourceID="sqldsList" ShowHeader="False" AllowPaging="False" ShowFooter="True" GridLines="None"> <Columns> <asp:TemplateField HeaderText=""> <ItemTemplate> <table cellspacing="0" class="detailRow"> <tr> <td style="width:100px;"><asp:Label ID="lbl1" runat="server" Text='<%# Eval("Field1") %>'></asp:Label></td> <td style="width:500px;"><asp:Label ID="lbl2" runat="server" Text='<%# Eval("Field2") %>'></asp:Label></td> </tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> </div> </div> ***スタイルシート*** .containerData { font-size: 11pt; border: solid 1px black; height: 500px; } .detailRow tr { height:30px; background:white; } .detailRow td { border-bottom: 1px solid black; }

  • ASP.NET GridViewの表示

    お世話になります。 環境:Oracle10g、VisualStudio2005 ASP.NET(VB)、Winxp ASP.NETでのWEBサイト構築は初めてで、わからないことだらけ で試行錯誤しております。 GridViewでObjectDataSourceを使用し、データ表示をしたい のですが、ビジネスオブジェクトの選択で、リストボックス に選択項目が表示されません。リストボックスに選択項目と して表示される条件を教えて頂きたいです。 xsdファイルにDataTableとDataAdapterを作成しクエリを設定 するところまでやりました。 情報不足等あれば追記致しますので、宜しくご教授お願い致 します。

  • DB更新の競合について

    OS  :WindowsXP Pro SP1 開発環境:VisualStudio .NET 2003 開発言語:C# 開発形態:Windowsアプリケーション いつもお世話になっております。 WindowsアプリケーションでDataGridを使用しております。DataGrid上でデータを編集し、ボタンをクリックするとDBに更新に行くプログラムです。 try...catchのcatchでDBConcurrencyExceptionを指定し、DB更新の際の競合を防ごうとしています。 DataGrid上にDataAdapterのFillメソッドでデータを表示後に、データベースの値を直接編集し、その後プログラム上でデータを編集してアップデートというテストをしたのですが、DBConcurrencyExceptionが発生しません。 このようなテスト方法だとDBConcurrencyExceptionは発生しないのでしょうか? 拙い文章でわかりずらく申し訳ありませんが、どなたかアドバイスをお願い致します。

  • ASP.Net SetEditRowの反対メソッド

    大変お世話になっております。 日夜、ASP.NETを勉強しておりますが、まだまだ初心者の域を脱しできない感じでございます。 GridView で 編集モードにするのに GridView.SetEditRow(インデックス) で出来ることは知っているのですが、これを通常のモード(ItemTemplate) に戻すメソッドはないのでしょうか? http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridview.seteditrow.aspx こちらの左側に表示してあるメソッドを見てみたのですが、どれがそれにあたるのか、まったくわかりません。 GridView.DataBind を実行しても元に戻りませんし・・・ もしかしたら、すごく簡単な事かもしれませんが、何卒ご教授いただければと存じます。 よろしくお願い申し上げます。