トップ回答者
RowCommandイベントについて

質問
-
MVS2008 初心者です。どなたかご教授願います。
環境:Windows XP、MVS2008 c#
Webフォームにてgridviewを作成し、GRID上の釦(複数)イベントをRowCommandで拾おうとしています。ソースコード上に以下のコードを記載しているのですが、イベントがかかりません。GridView1_SelectedIndexChangedにはイベントがかかります。何か初期設定がいるのでしょうか?
--------- 以下ソース
protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{int args = Int32.Parse((String)e.CommandArgument);
switch (e.CommandName)
{// [syousai]ボタンがクリックされた場合
case "syousai":
GridView1.Rows[args].BackColor = System.Drawing.Color.Azure;
break;// [joutai]ボタンがクリックされた場合
case "joutai":
GridView1.Rows[args].BackColor = System.Drawing.Color.Empty;
break;
}
}--------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebTest.WebForm3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" BackColor="LightGoldenrodYellow" BorderColor="Tan"
BorderWidth="1px" CellPadding="2" DataSourceID="SqlDataSource1"
ForeColor="Black" GridLines="None"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:ButtonField ButtonType="Button" CommandName="status" Text="状態" />
<asp:ButtonField ButtonType="Button" CommandName="syousai" Text="詳細" />
<asp:BoundField DataField="P_JOB_NO" HeaderText="P_JOB_NO"
SortExpression="P_JOB_NO" />
<asp:BoundField DataField="P_PRODUCT_NO" HeaderText="P_PRODUCT_NO"
SortExpression="P_PRODUCT_NO" />
<asp:BoundField DataField="P_USER" HeaderText="P_USER"
SortExpression="P_USER" />
<asp:BoundField DataField="P_USER_NO" HeaderText="P_USER_NO"
SortExpression="P_USER_NO" />
<asp:BoundField DataField="P_DELIVERY_NO" HeaderText="P_DELIVERY_NO"
SortExpression="P_DELIVERY_NO" />
<asp:BoundField DataField="P_PLANT_FLAG" HeaderText="P_PLANT_FLAG"
SortExpression="P_PLANT_FLAG" />
<asp:BoundField DataField="P_JOB_NO" HeaderText="P_JOB_NO"
SortExpression="P_JOB_NO" />
<asp:BoundField DataField="P_PRODUCT_NO" HeaderText="P_PRODUCT_NO"
SortExpression="P_PRODUCT_NO" />
<asp:BoundField DataField="P_USER" HeaderText="P_USER"
SortExpression="P_USER" />
<asp:BoundField DataField="P_USER_NO" HeaderText="P_USER_NO"
SortExpression="P_USER_NO" />
<asp:BoundField DataField="P_DELIVERY_NO" HeaderText="P_DELIVERY_NO"
SortExpression="P_DELIVERY_NO" />
<asp:BoundField DataField="P_PLANT_FLAG" HeaderText="P_PLANT_FLAG"
SortExpression="P_PLANT_FLAG" />
<asp:ButtonField ButtonType="Button" CommandName="Cancel" Text="状態" />
</Columns>
<FooterStyle BackColor="Tan" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:EU001ConnectionString2 %>"
onselecting="SqlDataSource1_Selecting"
SelectCommand="SELECT EUMANAGER.EU_PRODUCT.* FROM EUMANAGER.EU_PRODUCT">
</asp:SqlDataSource>
</form>
</body>
</html>- 移動 山本春海 2011年11月16日 6:34 より適切と思われるカテゴリに移動しました。 (移動元:SQL Server)
回答
-
> コードディタ上に[grid]-[rowcommand]すら表示できません。
以下のページを見てください。
方法 : ASP.NET Web ページのイベント ハンドラーを作成する
http://msdn.microsoft.com/ja-jp/library/6w2tb12s.aspxこの中の「コード エディターでイベント ハンドラーを作成するには」の
セクションに"C# を使用する分離コード ページの場合、次の手順のドロップダウン
リストにコントロール名が表示されないため、この方法は使用できませ
ん。他の手順を使用してください。"と書いてありますが、これが今回のケースに該当するのだと思います。
このページに他の方法がいろいろ書いてあるので、それを試してみてくだ
さい。#質問内容が SQL Server とは関係ないようです。適切なフォーラムにお願いします。
すべての返信
-
aviator_ さん
回答ありがとうございます。
ご指摘のとおり、RowCommandのハンドリング追加方法が分からなく困っています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/822aspgridvwcmdbtn1/aspgridvwcmdbtn1.html
のサイトを参考にRowCommandイベント・ハンドラを追加しようとしたのですが、コードディタ上に[grid]-[rowcommand]すら表示できません。根本的になにか設定がいけないのでしょうか?
-
GridView1_SelectedIndexChanged をハンドリングするために onselectedindexchanged="GridView1_SelectedIndexChanged" と書いているということは...。
参考:
RowCommand イベント
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridview.rowcommand(v=VS.90).aspx
# "MVS2008" って何のことかと思ったら "Microsoft Visual Studio 2008" のことみたいですね。だったら SQL Server ではないような。 -
> コードディタ上に[grid]-[rowcommand]すら表示できません。
以下のページを見てください。
方法 : ASP.NET Web ページのイベント ハンドラーを作成する
http://msdn.microsoft.com/ja-jp/library/6w2tb12s.aspxこの中の「コード エディターでイベント ハンドラーを作成するには」の
セクションに"C# を使用する分離コード ページの場合、次の手順のドロップダウン
リストにコントロール名が表示されないため、この方法は使用できませ
ん。他の手順を使用してください。"と書いてありますが、これが今回のケースに該当するのだと思います。
このページに他の方法がいろいろ書いてあるので、それを試してみてくだ
さい。#質問内容が SQL Server とは関係ないようです。適切なフォーラムにお願いします。