2009-10-06 6 views
2

한 페이지에있는 gridview을 가지고 있고 그것은 템플릿 필드가 있습니다ASP.NET의 GridView 텍스트 상자 문제

 <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="txtReturn" runat="server" Text="0"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 

을 그리고 난이 텍스트 상자의 TextValue을 읽는 명령 단추 클릭 이벤트에 일부 코드를 작성 :

int i = 0; 
     foreach (GridViewRow row in grdFactor.Rows) 
     { 
      TextBox txt = (TextBox)(row.FindControl("txtReturn")); 
      int ret = 0; 
      try 
      { 
       ret = Int32.Parse(txt.Text); 
       if (ret > 0 && ret < factor.Orders[i].Entity) 
       { 
        factor.Orders[i].updateReturn(ret); 
       } 
      } 
      catch (Exception ex) { } 

      i++; 
     } 

그러나 txt.Text의 값은 항상 0입니다. 제발 도와 주실 수 있습니까? 감사합니다. .

답변

1

그리드 또는 페이지에서 DataBind()를 호출하는시기는 언제입니까? 종종 개발자는 데이터를 두 번 바인드하고 Request.Form에서받은 데이터를 무시합니다.

Page.IsPostBack 부울을 확인하십시오.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     this.myGrid.DataSource = list; 
     this.myGrid.DataBind(); 
    } 
}