2012-07-05 4 views
0

Je travaille sur une forme ayant beaucoup zone de texte et une liste déroulante asp.net, actuellement j'essaie de remplir ces textBox dynamiquement à partir de la base de données sur l'événement textchange d'un textform particulierévénement OnTextChange agit bizarre

c'est-à-dire la zone de texte particulière nommée jobId (l'ID du travail est la clé primaire de la table de base de données) donc si quelqu'un entre 10, il remplira le reste du champ avec des valeurs avec la clé primaire comme 10,

cela fonctionne pour la première fois , mais finalement il donnera une erreur comme

The state information is invalid for this page and might be corrupted. 

et aucune valeur n'est modifiée.

Pourquoi est-ce que cela se produit, j'ai essayé beaucoup mais ne peux pas passer cette erreur, est-ce parce que je charge un document HTML dans un autre en utilisant AJAX?

pour plus de précisions est mon code ici,

la gâchette:

<asp:TextBox ID="Job_No" runat="server" Text="New" 
      ontextchanged="Job_No_TextChanged" AutoPostBack="true"></asp:TextBox> 

la fonction:

protected void Job_No_TextChanged(object sender, EventArgs e) 
    { 
     //SqlCommand cmd2 = new SqlCommand(""); 
     SqlDataAdapter sda = new SqlDataAdapter("select job_no from job_mstr", con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     // check = 1; 
     try 
     { 
      foreach (DataRow row in dt.Rows) 
      { 
       if (row["job_no"].ToString() == Job_No.Text) 
       { 

        // check = 0; 
        int id = Convert.ToInt32(Job_No.Text); 

        Job_No.Text = id.ToString(); 
        con.Open(); 
        SqlCommand cmd1 = new SqlCommand("select JOB_MILESTONE_DT,start_dt,end_dt,CUST_REF,convert(varchar,CUST_REF_DT,103) ,convert(varchar,due_date,103) ,JOB_DESC,LINKED_JOB,CLIENT_CONTACT,CONTACT_EMAIL,APPROVAL_USER,convert(varchar,approval_DT,103) ,TOT_QTY,cost,job_type,JOB_CATEGORY from job_mstr where job_no=" + id, con); 
        SqlDataReader dr = cmd1.ExecuteReader(); 
        if (dr.Read()) 
        { 
         JobM_Dt.Text = dr[0].ToString(); 
         StartTim.Text = dr[1].ToString(); 
         EndTime.Text = dr[2].ToString(); 
         Cust_refTxt.Text = dr[3].ToString(); 
         Cust_Ref_DtTxt.Text = dr[4].ToString(); 
         Due_DtTxt.Text = dr[5].ToString(); 
         Job_DescTxt.Text = dr[6].ToString(); 
         Linked_JobTxt.Text = dr[7].ToString(); 
         Client_ContactTxt.Text = dr[8].ToString(); 
         Client_EmailTxt.Text = dr[9].ToString(); 
         Approval_UsrTxt.Text = dr[10].ToString(); 
         Approval_DtTxt.Text = dr[11].ToString(); 
         Tot_QtyTxt.Text = dr[12].ToString(); 
         CostTxt.Text = dr[13].ToString(); 
         Job_TypeTxt.Text = dr[14].ToString(); 
         Job_CatogeryTxt.Text = dr[15].ToString(); 


        } 

        dr.Close(); 
        return; 
       } 
       else if (check == 1) 
       { 
        // Job_No.Text = "New"; 
        JobM_Dt.Text = ""; 
        StartTim.Text = ""; 
        EndTime.Text = ""; 
        Cust_refTxt.Text = ""; 
        Cust_Ref_DtTxt.Text = ""; 
        Due_DtTxt.Text = ""; 
        Job_DescTxt.Text = ""; 
        Linked_JobTxt.Text = ""; 
        Client_ContactTxt.Text = ""; 
        Client_EmailTxt.Text = ""; 
        Approval_UsrTxt.Text = ""; 
        Approval_DtTxt.Text = ""; 
        Tot_QtyTxt.Text = ""; 
        CostTxt.Text = ""; 
        Job_TypeTxt.Text = ""; 
        Job_CatogeryTxt.Text = ""; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.Message); 
     } 
    } 
+0

Avez-vous du code dans Page_Load? – adatapost

Répondre

1

Je vous suggère la meilleure façon de le faire est d'utiliser jquery ajax pour appeler un service Web en transmettant les valeurs requises au service et rendre le service retourne un objet au format JSON que vous pouvez utiliser pour remplir les zones de texte en utilisant jquery.

Questions connexes