2012-06-05 69 views
0

我很抱歉如果这是一个真正简单的问题,但我找不到其他人问。我有一个按钮列的网格视图。我试图使用按钮列向另一页发送文件名。我在这里把这个代码从另一个解决方案中解脱出来,但是在这一行中出现错误:“不包含'Item'的定义:”ListViewDataItem item =(ListViewDataItem)e。 商品号;我不知道要使用哪个Using-namespace(是他们所称的?)。gridview按钮

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

    if (e.CommandName == "edit") 
    { 
     ListViewDataItem item = (ListViewDataItem)e.Item; 

     int index = item.DataItemIndex; 
     string fileID = ((ListView)sender).DataKeys[index]["fileID"].ToString(); 

     Response.Redirect("[email protected]=" + fileID); 
    } 
} 

回答

1

我想你是在处理一个GridView不是一个ListView,则代码应该是

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

    if (e.CommandName == "edit") 
    { 
     int index = Convert.ToInt32(e.CommandArgument); 
     string fileID = ((GridView)sender).DataKeys[index]["fileID"].ToString(); 
     Response.Redirect("[email protected]=" + fileID); 
    } 
} 
+0

男孩哦...咄。谢谢! –

+0

我不认为你可以告诉我为什么GridView会触发rowediting事件,当我只想按下按钮并让它运行RowCommand事件? –

+0

我不是ASP.NET的专家,所以不能真正帮忙,但看看你是否有'AutoGenerateEditButton =“True”'。 [请参阅MSDN参考](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting)RowEditing和[RowCommand](http:// msdn。 microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand) – Steve