(MySQLデータベースにバインドされている)にバインドされたASP.NET GridView
があります。このグリッドでは、サーバー側のイベントをトリガーする2つのアンバウンドButtonField
列があります。したがって、GridView
のRowCommand
イベントにイベントハンドラメソッドを追加しました。ASP.NET GridViewからDataRowを取得
上記イベントハンドラのコードでは、ユーザがクリックした基になるDataRow
を何とか保持する必要があります。しかし、私はこれを動作させるように見えることはできません。私は、次のselectedRow
変数のようなコードを使用している場合、常にnull
です:
protected void searchResultsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
CallDataRow selectedRow = (CallDataRow) searchResultsGridView.Rows[Convert.ToInt32(e.CommandArgument)].DataItem;
}
私はGoogleで検索して、そのようなhttp://ranafaisal.wordpress.com/2008/03/31/how-to-get-the-current-row-in-gridview-row-command-eventなどのページを見つけましたが、私が見つけたものは何も働いていないきました。私はちょうど何かを明らかに欠けているかなり確信しているが、私は何を把握することはできません...
それは場合に役立ちます。ここASP.NETコードだ:
最後になった<asp:GridView ID="searchResultsGridView" runat="server" AutoGenerateColumns="False"
DataKeyNames="PersonNo,CallDate"
Width="100%" AllowPaging="True" EnableSortingAndPagingCallbacks="True"
onrowcommand="searchResultsGridView_RowCommand" PageSize="20">
<Columns>
<asp:BoundField DataField="PersonNo" HeaderText="Account number" ReadOnly="True"
SortExpression="PersonNo" />
<asp:BoundField DataField="AgentNo" HeaderText="Agent number"
SortExpression="AgentNo" />
<asp:BoundField DataField="AgentName" HeaderText="Agent name"
SortExpression="AgentName" />
<asp:BoundField DataField="TelNumber" HeaderText="Telephone number"
SortExpression="TelNumber" />
<asp:BoundField DataField="CallDate" HeaderText="Call date/time" ReadOnly="True"
SortExpression="CallDate" />
<asp:ButtonField CommandName="play" HeaderText="Audio" ShowHeader="True"
Text="Play" />
<asp:ButtonField CommandName="download" Text="Download" />
</Columns>
</asp:GridView>
***隠しフィールド***なしで他のソリューションを試しましたか? – Kiquenet