Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net c#gridview按钮_C#_Asp.net_Button_Gridview - Fatal编程技术网

asp.net c#gridview按钮

asp.net c#gridview按钮,c#,asp.net,button,gridview,C#,Asp.net,Button,Gridview,我无法让gridview的按钮列执行任何操作。我正在使用DirectoryInfo对象获取文件的详细信息。我将文件名和创建日期放入gridview列中。第三列是按钮列。我已经将数据键(Name,CreationTime)命名为按钮列的commandName,并将其设置为“sendcommand”。我想将文件名发送到另一个页面。我有RowCommand事件的以下代码: protected void gvFiles_RowCommand(object sender, System.Web.UI.We

我无法让gridview的按钮列执行任何操作。我正在使用DirectoryInfo对象获取文件的详细信息。我将文件名和创建日期放入gridview列中。第三列是按钮列。我已经将数据键(Name,CreationTime)命名为按钮列的commandName,并将其设置为“sendcommand”。我想将文件名发送到另一个页面。我有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>

您必须将该属性添加到ASPX中的GridView中,否则GridView在您对其执行命令时不知道要调用什么方法


AFAIK这是一个完全可选的属性,不是通过设计器生成的,因此当您想要使用它时,必须手动添加它。

我们还可以查看gridview本身的设置(生成它的aspx或c#)吗?您没有说您正在将CommandArgument属性设置为任何属性吗?另外,gridview是否订阅了此事件,调试程序是否命中了事件内的断点?您缺少gridview的
OnRowCommand
属性,因此永远不会调用gvFiles\u RowCommand。介意为我键入一个示例吗?