2011-05-20 76 views
1

我想根据我选择删除的行从gridview中获取数据。如何从所选的gridview行中获取数据?

我想这一点,

string fileName = grdUploadedFiles.Rows[e.RowIndex].Cells[2].ToString(); 

,但它显示的字符串,

System.Web.UI.WebControls.DataControlFieldCell 

我究竟能做些什么来取,我已经插入到GridView的文件名。

此外,此字段不是DataKey。

+0

在此情况下,你是谁? – jams 2011-05-20 04:53:22

+0

RowDeleting事件 – user755230 2011-05-20 04:59:47

+0

如果答案解决了您的问题,那么您应该“接受”它作为答案。 – jams 2011-05-20 05:10:25

回答

1

如果cell不包含像label任何控制那就试试这个

string fileName = grdUploadedFiles.Rows[e.RowIndex].Cells[2].Text; 
0

您应该调用.Text作为值,根据MSDN documentation

一般来说,默认情况下,值类型会覆盖TooString。引用类型通常不会覆盖.ToSting及其“值”(调用该类时通常会访问的内容)。

0

这里是MSDN一个例子:

<%@ Page Language="C#" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server"> 

    void CustomersGridView_RowDeleting 
     (Object sender, GridViewDeleteEventArgs e) 
    { 
     TableCell cell = CustomersGridView.Rows[e.RowIndex].Cells[2]; 
     if (cell.Text == "Beaver") 
     { 
      e.Cancel = true; 
      Message.Text = "You cannot delete customer Beaver."; 
     } 
     else 
     { 
      Message.Text = ""; 
     } 
    } 

</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title>GridView RowDeleting Example</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <h3> 
     GridView RowDeleting Example 
    </h3> 
    <asp:Label ID="Message" ForeColor="Red" runat="server" /> 
    <br /> 
    <asp:GridView ID="CustomersGridView" runat="server" 
     DataSourceID="CustomersSqlDataSource" 
     AutoGenerateColumns="False" 
     AutoGenerateDeleteButton="True" 
     OnRowDeleting="CustomersGridView_RowDeleting" 
     DataKeyNames="CustomerID,AddressID"> 
     <Columns> 
      <asp:BoundField DataField="FirstName" 
       HeaderText="FirstName" SortExpression="FirstName" /> 
      <asp:BoundField DataField="LastName" HeaderText="LastName" 
       SortExpression="LastName" /> 
      <asp:BoundField DataField="City" HeaderText="City" 
       SortExpression="City" /> 
      <asp:BoundField DataField="StateProvince" HeaderText="State" 
       SortExpression="StateProvince" /> 
     </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="CustomersSqlDataSource" runat="server" 
     SelectCommand="SELECT SalesLT.CustomerAddress.CustomerID, 
      SalesLT.CustomerAddress.AddressID, 
      SalesLT.Customer.FirstName, 
      SalesLT.Customer.LastName, 
      SalesLT.Address.City, 
      SalesLT.Address.StateProvince 
      FROM SalesLT.Customer 
      INNER JOIN SalesLT.CustomerAddress 
      ON SalesLT.Customer.CustomerID = 
       SalesLT.CustomerAddress.CustomerID 
      INNER JOIN SalesLT.Address ON SalesLT.CustomerAddress.AddressID = 
       SalesLT.Address.AddressID" 
     DeleteCommand="Delete from SalesLT.CustomerAddress where CustomerID = 
      @CustomerID and AddressID = @AddressID" 
     ConnectionString="<%$ ConnectionStrings:AdventureWorksLTConnectionString %>"> 
     <DeleteParameters> 
      <asp:Parameter Name="AddressID" /> 
      <asp:Parameter Name="CustomerID" /> 
     </DeleteParameters> 
    </asp:SqlDataSource> 
    </form> 
</body> 
</html> 
相关问题