2011-06-02 18 views
0

私は、テキストボックスとグリッドビューを持つフォームを持っています。 "Inward Number"というテキストボックスがあり、そのテキスト変更イベントは常に発生します。別のコントロールのイベントを発生させたいときは、Inward Numberテキストボックスのテキスト変更イベントを発生させるだけです。これは他のすべてのコントロールで発生します。誰かが助けてくれますか?テキストボックスtextchangedイベントは常に発生します

protected void txtInward_No_TextChanged(object sender, EventArgs e) 
{ 
    a = 'A'; 
    NewRow(); 
} 

正しい名前を使用しましたが、このエラーが発生します。

<asp:TextBox ID="txtInward_No" runat="server" Width="220px" CssClass="txtbox" 
        EnableViewState="False" 
        AutoPostBack="True" ontextchanged="txtInward_No_TextChanged"> 
</asp:TextBox> 

新しい行だけでグリッドに新しい行が作成されます。

プライベートvoid NewRow() { int rowIndex = 0;

 if (ViewState["CurrentTable"] != null) 
     { 
      DataTable dtnew = new DataTable(); 
      dtnew = (DataTable)ViewState["CurrentTable"]; 
      DataRow drr = null; 
      if (dtnew.Rows.Count > 0) 
      { 
       for (int i = 1; i <= dtnew.Rows.Count; i++) 
       { 
        TextBox box1 = (TextBox)GridView1.Rows[rowIndex].Cells[2].FindControl("TextBox1"); 
        TextBox box2 = (TextBox)GridView1.Rows[rowIndex].Cells[3].FindControl("TextBox2"); 
        TextBox box3 = (TextBox)GridView1.Rows[rowIndex].Cells[4].FindControl("TextBox3"); 
        TextBox box4 = (TextBox)GridView1.Rows[rowIndex].Cells[5].FindControl("TextBox4"); 
        TextBox box5 = (TextBox)GridView1.Rows[rowIndex].Cells[6].FindControl("TextBox5"); 

        drr = dtnew.NewRow(); 
        if (txtInward_No.Text =="1") 
        { 
         drr["InwardNumber"] = txtInward_No.Text + b.ToString();       
        } 
        else 
        { 
         drr["InwardNumber"] = txtInward_No.Text + a.ToString(); 
        } 
        drr["Bags"] = box1.Text; 
        drr["GrossWt"] = box2.Text; 
        drr["TareWt"] = box3.Text; 
        drr["NetWt"] = box4.Text; 
        drr["DCBillWt"] = box5.Text; 

        rowIndex++;      
       } 
       dtnew.Rows.Add(drr); 
       ViewState["CurrentTable"] = dtnew; 
       GridView1.DataSource = dtnew; 
       GridView1.DataBind();      
      } 
     } 
     PrevData(); 
     b++; 
     a++; 
    } 
+2

asp.netページとイベントハンドラコードのマークアップを投稿できますか? –

+2

私たちはあなたの心を読むことができません。いくつかのコードを入れてください。 –

答えて

1

おそらく起こっていることは、ASP.NETがViewStateに依存してTextBoxの値が変更されたかどうかを判断することです。しかし、あなたはこのコントロールでViewStateを無効にしました。代わりにControlStateを使用できない理由はわかりませんが、このTextBoxのViewStateを有効にして、これが効果を発揮するかどうかを調べることができます。

MSDN page on the OnTextChanged eventにこれが記載されています。

+0

はい、ViewStateを有効にしました。.....多くの人に感謝します。 – RAHUL

関連する問題