1

グリッドビューのボタン列で何かを行うのに問題があります。ファイルの詳細を取得するために DirectoryInfo オブジェクトを使用しています。ファイル名と作成日をグリッドビューの列に入れました。3 列目はボタン列です。ボタン列の commandName を「sendcommand」に指定して、datakeys(Name, CreationTime) を設定しました。ファイル名を別のページに送信したい。RowCommand イベントのコードは次のとおりです。

protected void gvFiles_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{

    if (e.CommandName == "sendcommand")
    {

        int index = Convert.ToInt32(e.CommandArgument);

        string fileID = ((GridView)sender).DataKeys[index]["Name"].ToString();
        Response.Redirect("irMain.aspx?@filename=" + fileID); 
    }
}

私が思うポストバックを除いて、何も起こりません。どうすればいいですか?

<asp:GridView ID="gvFiles" runat="server" Font-Name="Verdana" Font-Names="Verdana" 
        Width="401px" AutoGenerateColumns="False" BackColor="White" 
        BorderColor="Black" BorderStyle="Ridge" BorderWidth="2px" 
        DataKeyNames="Name,CreationTime" 
        >
        <Columns>
            <asp:HyperLinkField AccessibleHeaderText="File Name" 
                DataNavigateUrlFields="Name" DataNavigateUrlFormatString="~\Assets\reports\{0}" 
                DataTextField="Name" HeaderText="File Name" >

                <HeaderStyle BackColor="#0033CC" ForeColor="White" />
            </asp:HyperLinkField>
            <asp:BoundField AccessibleHeaderText="Date" DataField="CreationTime" 
                DataFormatString="{0:d}" HeaderText="Date">
                <HeaderStyle BackColor="Blue" ForeColor="White" />
            </asp:BoundField>

            <asp:ButtonField ButtonType="Button" Text="DO Stuff" CommandName="sendcommand" 
                HeaderText="WHAT?!" />

        </Columns>

        <AlternatingRowStyle BackColor="#6699FF" />

    </asp:GridView>
4

1 に答える 1

3

ASPX で GridView に属性を追加する必要がありOnRowCommandます。そうしないと、GridView でコマンドを実行するときに呼び出すメソッドがわかりません。

私の知る限り、これは完全にオプションの属性であり、デザイナーを介して生成されないため、使用する場合は手動で追加する必要があります。

于 2012-06-05T21:27:24.047 に答える