[英]asp.net c# gridview buttons
我无法获得gridview的按钮列来执行任何操作。 我正在使用DirectoryInfo对象来获取文件的详细信息。 我将文件名和创建日期放在gridview列中。 第三列是按钮列。 我已将datakeys(Name,CreationTime)设置为“sendcommand”,将按钮列的commandName命名为。 我想将文件名发送到另一个页面。 我有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>
您必须将OnRowCommand
属性添加到ASPX中的GridView,否则GridView在您对其执行命令时不知道要调用的方法。
AFAIK这是一个完全可选的属性,不是通过设计器生成的,因此您必须在需要时手动添加它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.