再Grid View用模板添加了个TextBox列 以供输入成绩
代码:
<asp:TemplateField HeaderText="成绩">
            <ItemTemplate>
              <asp:TextBox ID="txtScore" Width="40" runat="server"></asp:TextBox>
            </ItemTemplate>
            </asp:TemplateField>在后台代码怎么样得到 txtScore 的值
我写的代码:
 for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            int score = int.Parse(((TextBox)GridView1.Rows[i].FindControl("txtScore")).Text.Trim());
            Response.Write(score);
        }提示的错误是: 输入字符串的格式不正确。//int score = int.Parse(((TextBox)GridView1.Rows[i].FindControl("txtScore")).Text.Trim());应该怎么该阿?

解决方案 »

  1.   

    在事件中E本身会保存你操作的行数protected   void   GridView1_RowDataBound(object   sender,   GridViewRowEventArgs   e)   
      {   
                  if(e.Row.RowIndex>-1)   
                  {   
                      TextBox   txt   =   (TextBox)(e.Row.FindControl("txtScore"));   
                      string   aa   =   txt.Text;   
                      Response.Write(aa);   
                  }   
        }
    不需要使用循环
      

  2.   


    for (int i = 0; i < GridView1.Rows.Count; i++) 
            { 
                int score = int .Parse(((TextBox)GridView1.Cells[i].FindControl("txtScore")).Text.Trim();
                Response.Write(score); 
            } 
      

  3.   


    我使用循环是为了每次获得一个Score就把他插到数据库中,我现在就想问怎么样才能直接得到txtScore里的值
      

  4.   


    //int score = int .Parse(((TextBox)GridView1.Cells[i].FindControl("txtScore")).Text.Trim();
    GridView1.Cells[i].不可以直接用阿
      

  5.   

    [Quote=引用楼主 zilong4460072 的帖子:]
    再Grid View用模板添加了个TextBox列 以供输入成绩 
    代码: 
    <asp:TemplateField HeaderText="成绩"> 
                <ItemTemplate> 
                  <asp:TextBox ID="txtScore" Width="40" runat="server"> </asp:TextBox> 
                </ItemTemplate> 
                </asp:TemplateField> 在后台代码怎么样得到 txtScore 的值 
    在以下事件中写如下代码:
    protected  void  GridView1_RowDataBound(object  sender,  GridViewRowEventArgs  e)  
      {
    for (int i = 0; i < GridView1.Rows.Count; i++) 
            { 
                      if(e.Row.RowIndex>-1)  
                  {  
                      TextBox  txt  = (e.Row.FindControl("txtScore") as TextBox).Text;  
                      string  aa  =  txt.Text;  
                      Response.Write(aa);  
                  } 
         }
    }
      

  6.   

     protected void gvSource_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
           int score = int .Parse(((TextBox)gvSource.Rows[e.RowIndex].Cells[i].Controls[0]).Text);
        }