GridViewのイベントの関連づけ

このQ&Aのポイント
  • GridViewのイベントを作成する方法として、Handles句を使用することがあります。
  • しかし、Handles句には、定義されたWithEvents変数が必要であるというエラーが発生することがあります。
  • このエラーを解決するためには、適切なWithEvents変数を定義する必要があります。
回答を見る
  • ベストアンサー

GridViewのイベントの関連づけ

GridViewのイベントを作成したいのですが、 >Protected Sub grdList_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdList.RowCreated と指定すると、 >「HANDLES 句には、それを含む型または基本型の 1 つで定義された WithEvents 変数が必要です。」 とHandles grdList.RowCreatedのgrdListの下に青い波線が引かれエラーになります。 解決策をどなたかお願いします。

noname#208236
noname#208236

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

  • ベストアンサー
  • onos
  • ベストアンサー率81% (127/155)
回答No.1

えと、grdListって存在してます? ためしに存在しないコントロール名にしたら同じようなエラーが表示されました。 VSだとコントロールのプロパティウィンドウでイベントを表示して、イベントハンドラを作成したいイベントをダブルクリックすると自動的にこのハンドラを作成してくれます。 そのような方法でイベントハンドラを生成してみたらどうなるでしょう?

noname#208236
質問者

お礼

ANo.1の言われるようにダブルクリックで作成してもダメだったので試行錯誤したのですが、原因がわかりました。 designerファイルがありませんでした。 消した記憶もなく何故ないのかは不明ですが、作り直す事で解決しました。 ありがとうございました。

関連するQ&A

  • GridViewのEditTemplate

    すみません。改めて質問させていただきます。 GridViewのEditTemplateにDropDownListが配置されています。 更新したときに、そのDropDownListの値を取得する方法をご教授頂きたいです。 言語はVBです。以下のコードを書きましたが取得できません(Updatingイベントのとき)↓ Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating MsgBox(GridView1.Rows(e.RowIndex).ToString) End Sub とりあえずメッセージボックスにドロップダウンリストの値を表示したいです。

  • Page_Load時にボタンクリックイベントを実行するには?

    ASP.NETでPage_Load時にボタンクリックイベントを実行するにはどのようにすればいいのでしょうか? 具体的には、HTTPクエリ文字列のresultが"1"の場合はbutton1_Clickイベントを実行したいのですが、やりかたが分かりません。 サンプルソースの★の部分に button1_Click(sender, System.Web.UI.ImageClickEventArgs.Empty) と入れたら、 「型 'System.EventArgs' のオブジェクトを型 'System.Web.UI.ImageClickEventArgs' にキャストできません。」 というエラーメッセージが表示されてしまいます。 ■■■■■■サンプルソース■■■■■■ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load   'クエリー取得(数値チェック)   If Request.QueryString("result").ToString = "1" Then     '検索ボタン押下処理を表示する     ★button1_Clickイベントを実行したい。   End If End Sub '検索ボタン押下 Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles button1.Click '検索結果を表示する     : End Sub

  • GridViewのButtonフィールドの使い方

    環境:visual web develper 2008 Express Edition GridViewタスク→列の編集→フィールド→「使用できるフィールド」からButtonFieldを選択→Button Typeを「Button」に設定、Textは「削除」→「OK」を押す 以上の流れで削除ボタンの列がGridView内に表示されますが、「削除ボタン」を押しても何も起こりません。 削除ボタンをクリックされたときにこちらが決めた処理を行わせるにはどうすればよいでしょうか? ツールボックスのButtonですと、 Protected Sub sakujyo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bookNameSyoujyun.Click    End Sub でボタン(sakujyoボタン)を押したときの処理がかけますが、このような書き方はできないのでしょうか? 現状だとGridView内にあるボタンのIDがわからないため、○○○_Clickの○の部分に何を書けばいいのかわかりません。 ご助言よろしくお願いいたします。。

  • Handlesについて

    初心者です。VB2008にて練習中なのですが、下記のようなプログラムで WithEventsの変数が必要とメッセージが出ます。何がおかしいのでしょうか? Private Sub CopyToolStripButton_Click(ByVal sender _ As Object, ByVal e As System.EventArgs) Handles _ CopyToolStripButton.Click Me.TextBox1.Copy() End Sub

  • GridView1の選択の指定とダミーデータの追加について

    GridView1とTwxtBox1を用意し GridView1に選択ボタンをつけ押すと、TextBox1にその行の1行目を表示するようにしたいのですが ★に何を入れたら、選択行を指定することができるのでしょうか?教えてください。 Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) TextBox1.Text = GridView1.Rows.Item(★).Cells(1).Text End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim conStr As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString Dim strSQL As String strSQL = "SELECT 1CELL FROM tableA" Using con As New SqlConnection(conStr) Using cmd As NEw SqlCommand(strSQL, con) Dim dr As SqlDataReader con.Open() dr = cmd.ExecuteReader(Data.CommandBehavior.CloseConnection) GridView1.DataSource = dr GridView1.DataBind() dr.Close() End Using End Using End Sub また、GridView1に出ているデータに選択するデータがない場合の為に データーベースにはなくても【-】というデータを常に表示できるようにしたいのですが どのようにしたらいいのでしょうか? 【tableAの1CELL】 AAAAA BBBBB CCCCC DDDDD - ←データベースにはこのデータはないけれどGridView1には常に表示し、これを選択するとTextBox1に【-】が入るようにしたいのですが よろしくお願いします。

  • PageクラスのDisposedイベントについて教えて

    PageクラスのDisposedイベントについて教えて下さい。 VS2005 VB.Net環境でwebサイトを作成し、Default.aspxに以下のコードを書きました。 Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = "Page_Load通過。" End Sub Protected Sub Page_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed Label1.Text = "Page_Disposed通過。" End Sub End Class 目的は、Page_DisposedメソッドのMe.Disposedイベントはいつ発生するのか知りたいのです。 MSDNライブラリでは、 『サーバー コントロールがメモリから解放されると発生します。 これは、ASP.NET ページが要求されている場合の サーバー コントロールの有効期間における最終段階です。』 とありますが、良くわかりません。。。 ご教授下さい、宜しくお願い致します。

  • GridView でコンボボックスの設定

    再質問をさせていただきます。 gridviewを作成しました。 -------------------------------------------------------------------------------- <asp:GridView ID="grdList" runat="server" DataSourceID="sqldsList"> <Columns> <asp:BoundField DataField="ITEMNO" HeaderText="ITEMNO"></asp:BoundField> <asp:TextBox ID="txtNAME" runat="server" Text='<%# Bind("ITEM_NAME") %>'></asp:TextBox> <ItemTemplate>   <asp:DropDownList CssClass="cnbstr" ID="cnb_KBN" runat="server"     DataSourceID="sqldscnb1" DataTextField="NAME" DataValueField="NO" AutoPostBack="True"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> -------------------------------------------------------------------------------- このコンボボックスに値を設定させたいのですが、ITEMNO="01"の時だけ、txtNAMEの値を初期表示したいと思っています。 RowDataBound、RowCreatedで可能かと思ったのですができずに困っています。 どなたかご教授お願いします。 Protected Sub grdList_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdList.RowDataBound   If e.Row.RowType = DataControlRowType.DataRow Then     IF DataBinder.Eval(e.Row.DataItem, "ITEMNO").ToString() = "01" THEN       Dim dlist As DropDownList = DirectCast(e.Row.FindControl("cnb_KBN"), DropDownList)       dlist.SelectedValue = "ITEM_NAME" ←こんな感じのことをしたい     ELSE       設定しない     END IF   End If End Sub

  • GridViewコントロールで列を固定するには?

    DataGridViewの場合、以下のサイトに説明があったのですが、 http://www.atmarkit.co.jp/fdotnet/dotnettips/509dgvfrozen/dgvfrozen.html GridViewを使用している場合、 grdList.Columns(2).Frozen = True と記述すると、エラーとなります。 「'Frozen' は 'System.Web.UI.WebControls.DataControlField' のメンバではありません。」 GridViewではどのように記述するのでしょうか?

  • GridViewのデータソースの入れ方がわかりません

    OleDb.OleDbDataAdapter' が定義されていません DataSet' が定義されていません。 OleDb.OleDbConnection' が定義されていません。 OleDb.OleDbDataAdapter' が定義されていません 以上の エラーが出ます 定義の、意味がわかりません 教えてください お願いします WinXP Microsoft Visual Web Developer 2008 ASPX Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet = New DataSet("顧客台帳") Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\*******\*****.mdb;") 'データセットに取得し、DataGridViewに関連付ける dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 顧客台帳", cn) dAdp.Fill(dSet, "顧客台帳") Me.GridView1.DataSource = dSet.Tables("顧客台帳") End Sub

  • データの挿入がされない

    やりたいことをまとめてみました。 テキストボックスを2つ用意して 「txt_company」には会社名を「txt_Name」には氏名を入力し ラジオボタンリスト「rdo_Type」からも選択した後、 「Button1」ボタンをクリックすると3つのデータを「ユーザ」テーブルへ挿入。 という風にしたいのですがうまく行きません。 エラーは出ないのですが、何も挿入されていません。 もしかしたら元々の構成を勘違いしているのかもしれないのでコードを記述してみました。 何方かよろしくお願いします。 ・イベント Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) SqlDataSource1.Insert() End Sub Protected Sub SqlDataSource1_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) e.Command.Parameters("@company").Value = txt_company.Text e.Command.Parameters("@name").Value = txt_Name.Text e.Command.Parameters("@type").Value = rdo_Type.SelectedValue End Sub Protected Sub SqlDataSource1_Inserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Label1.Text = e.AffectedRows + "件処理されました" End Sub ・SqlDataSource <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyNorthwind %>" InsertCommand="INSERT INTO ユーザ (会社名, 氏名, タイプ) SELECT(@company, @name, @type)"> <InsertParameters> <asp:formparameter Name="company" ConvertEmptyStringToNull="true"/> <asp:formparameter Name="name" /> <asp:formparameter Name="type" /> </InsertParameters> </asp:SqlDataSource>