2010-12-01 6 views
0

私は階層グリッドのテンプレートフィールドとしてボタンを持っています。そのボタンにはいくつかのデータが更新されていますが、ユーザーがブラウザの更新ボタンを押すと、ここページリフレッシュで実行されるグリッドのテンプレートフィールド(ボタン)

 protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 
      { 
       if (!Page.IsPostBack) 
       { 
        if (e.CommandName == "UpdateBillData") 
        { 

         GridViewRow row = ((Control)e.CommandSource).NamingContainer as GridViewRow; 
         int index = row.RowIndex; 

         int billgenID = Convert.ToInt32(GridView1.DataKeys[index].Value); 

         DropDownList ddmonths = (DropDownList)row.FindControl("DDBillingMonths"); 
         TextBox cunit = (TextBox)row.FindControl("txtCurrBillUnits"); 
         TextBox amountbDue = (TextBox)row.FindControl("txtAmountBDueDate"); 
         TextBox advItax = (TextBox)row.FindControl("txtAdvIncomeTax"); 
         TextBox whtax = (TextBox)row.FindControl("txtWholdingTax"); 
         TextBox gst = (TextBox)row.FindControl("txtGst"); 
         TextBox amountafterdd = (TextBox)row.FindControl("txtAmtAfterDD"); 
         TextBox duedate = (TextBox)row.FindControl("txt_BillDueDate"); 
         TextBox billingdate = (TextBox)row.FindControl("txt_BillGenDate"); 
         TextBox remarks = (TextBox)row.FindControl("txtOthers"); 

         //Update Bill Data Procedure 
         Database db = DatabaseFactory.CreateDatabase(); 

         DbCommand cmd = db.GetStoredProcCommand("sp_Update_GenBill"); 

         db.AddInParameter(cmd, "@gridrowID", System.Data.DbType.Int32); 
         db.SetParameterValue(cmd, "@gridrowID", billgenID); 

         db.AddInParameter(cmd, "@bmonth", System.Data.DbType.String, 3); 
         db.SetParameterValue(cmd, "@bmonth", ddmonths.SelectedValue); 

         //Execute Stored Procedure 
         int i = 0; 
         i = db.ExecuteNonQuery(cmd); 

         if (i != 0) 
         { 
          showalert("Succesfuly Updated..."); 
         } 
         else 
          showalert("Error occured while updating..."); 
        } 
       } 
     } 
の後ろに私のコード

答えて

0

ある解決策は...私の推測では、各リフレッシュは、それに関連付けられたコマンドで制御した前に、あなたの最後のポストバックです。あなたのブラウザでREFRESHをヒットすると、実際にコマンドが再ポストされます。ブラウザのアドレス欄に移動し、Enterキーを押してみてください。同じ結果が得られますか?

+0

私はGridViewを持っており、このボタンはそれに関連付けられたコントロールです。 Whats the Solution – user342944

+0

驚くべきことに、問題はボタンの周りにUPDATE PANELを置くことによって解決されるようです。 – user342944

+0

UpdatePanelは、ページ全体ではなくパネル内の内容のみを更新します。だからあなたのコマンドが本当に発砲していたら、まだ発砲しています... – bitxwise

関連する問題