GV.Rows[index].Cells[2].Text.ToString();我用这个语句取到是空值,怎么回事哦?
部分前台代码如下:
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False" AllowPaging="True"  OnRowCommand="GV_RowCommand"
    OnPageIndexChanging="GV_PageIndexChanging" PageSize="15"  CellPadding="4" ForeColor="Black" AllowSorting="True" Height="232px" Width="725px" BackColor="#E0E0E0" BorderColor="#E0E0E0" BorderStyle="Inset">
    <Columns>
        <asp:TemplateField HeaderText="编号">
        <ItemTemplate>
        <b>
        <%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>
        </b>
        </ItemTemplate>
        </asp:TemplateField> 
        
         <asp:TemplateField HeaderText="活动主题">
        <ItemTemplate>
        <b>
        <a href='ActivityDetail.aspx?activity_id=<%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>'><%# DataBinder.Eval(Container.DataItem, "TITLE") %></a>
        </b>
        </ItemTemplate>
        </asp:TemplateField>
        
         <asp:TemplateField HeaderText="发布者">
        <ItemTemplate>
        <b>
        <%# DataBinder.Eval(Container.DataItem, "ORGANIZER")%>
        </b>
        </ItemTemplate>
        </asp:TemplateField>   
        
         <asp:TemplateField HeaderText="发布时间">
        <ItemTemplate>
        <b>
        <%# DataBinder.Eval(Container.DataItem, "TIME")%>
        </b>
        </ItemTemplate>
        </asp:TemplateField>  
        
       <asp:ButtonField Text="删除" HeaderText="删除" CommandName="Delete" />
                
    </Columns>

解决方案 »

  1.   

    GV.Rows[e.index].Cells[2].Text.ToString();
      

  2.   

    protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument); //待处理的行下标
            string name = GV.Rows[index].Cells[2].Text.ToString();
    }绑定数据后取的;
      

  3.   

    你的Cell[2]不是BoundField,用Cells[2].Text取值有些问题
      

  4.   

    既然已经使用了模版列,不如使用标签存放绑定的数据<asp:TemplateField HeaderText="发布者">
    <ItemTemplate>
    <b>
    <%# DataBinder.Eval(Container.DataItem, "ORGANIZER")%>
    </b>
    </ItemTemplate>
    </asp:TemplateField>  
    </ItemTemplate>
    </asp:TemplateField> 
    ==
    <asp:TemplateField HeaderText="发布者">
    <ItemTemplate>
    <b>
    <asp:Label ID="Label1" runat="server" Text='<%# Eval("ORGANIZER")%>'></asp:Label>
    </b>
    </ItemTemplate>
    </asp:TemplateField> protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument); //待处理的行下标
        string name = ((Label)(GV.Rows[index].FindControl("Label1"))).Text;
    }
      

  5.   

    你用linkbutton吧,
    ((LinkButton)GV.Rows[index].Cells[2].Controls(1)).Text即可
      

  6.   

    cell里面肯定嵌套一个control
    ((Label)(GV.Rows[index].Cells[2].Controls[0])).Text;
      

  7.   

    你用的TemplateField,建议用Label显示
    <asp:TemplateField HeaderText="发布者">
    <ItemTemplate>
    <b>
    <asp:Label ID="Label1" runat="server" Text='<%# Bind("ORGANIZER")%>'></asp:Label>
    </b>
    </ItemTemplate>
    </asp:TemplateField> 取值:
    String str = ((Label)GV.Rows[index].FindControl("Label1")).Text;
      

  8.   


    为什么使用了模板列就不能用Cell[2]了呢,菜鸟问题,希望能回答哦,嘿嘿
      

  9.   

    GV.Rows[index].Cells[2].Text.ToString()?
    好像GV.Rows[index].Cells[2].后面有Control