2011-05-09 5 views
1

J'ai un contrôle gridview auquel je lie manuellement les données. Lorsque je modifie une ligne et la mets à jour, les valeurs des zones de texte envoyées sont toujours les anciennes valeurs. J'ai trouvé quelques discussions à ce sujet mais je n'ai pas eu de chance d'extraire les nouvelles valeurs.Gridview_RowEdition de valeurs vides

<asp:GridView ID="GridView1" runat="server"> 
     <Columns> 
      <asp:CommandField ShowEditButton="True" /> 
     </Columns> 
    </asp:GridView> 



    Private Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating 
     Dim gv As GridView = sender 
     For i As Integer = 0 To gv.Columns.Count Step 1 
      Dim cell As DataControlFieldCell = gv.Rows(e.RowIndex).Cells(i) 
      gv.Columns(0).ExtractValuesFromCell(e.NewValues, cell, DataControlRowState.Edit, True) 
     Next 
     For Each s As DictionaryEntry In e.NewValues 
      Debug.Print(s.Key & " | " & s.Value) 
     Next 

     ds.Tables("testTable").Rows(e.RowIndex).BeginEdit() 
     [ ... ] 
     ds.Tables("testTable").Rows(e.RowIndex).EndEdit() 

     GridView1.EditIndex = -1 

     BindData() 
    End Sub 

Je veux aussi souligner que le code ExtractValuesFromCell est juste ma dernière tentative pour obtenir les nouvelles données. Avant que j'utilisais quelque chose comme ça

Dim tb as TextBox = sender.Rows(e.RowIndex).Cells(1).Controls(0) 
Label1.Text = tb.Text 

Aussi voici comment les données semble commencer

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If (ds.Tables.Count = 0) Then 
     ds.Tables.Add("testTable") 
     ds.Tables("testTable").Columns.Add("Driver Name") 
     ds.Tables("testTable").Columns.Add("Total") 
     ds.Tables("testTable").Columns.Add("# Of Calls") 
     ds.Tables("testTable").Columns("Total").ReadOnly = True 
     ds.Tables("testTable").Columns("# Of Calls").ReadOnly = True 

     Dim newRow As DataRow = ds.Tables("testTable").NewRow() 
     newRow("Driver Name") = "" 
     newRow("Total") = "" 
     newRow("# Of Calls") = "" 
     ds.Tables("testTable").Rows.Add(newRow) 
    End If 
    BindData() 
End Sub 

Répondre

0
public static void filedownload(string Path) 
    { 
     string str = ""; 
     FileInfo file = new FileInfo(Path); 

     // Checking if file exists 
     if (file.Exists) 
     { 
      // Clear the content of the response 
      HttpContext.Current.Response.ClearContent(); 

      // LINE1: Add the file name and attachment, which will force the open/cance/save dialog to show, to the header 
      HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); 

      // Add the file size into the response header 
      HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString()); 

      // Set the ContentType 
      HttpContext.Current.Response.ContentType = CommonStrings.returnextension(file.Extension.ToLower()); 

      // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead) 
      HttpContext.Current.Response.WriteFile(file.FullName); 

      // End the response 
      HttpContext.Current.Response.End(); 
     } 
     else 
     { 
      // 9-vgrfu8i "File Not Found!"; 
     } 
     // Response.Redirect(e.CommandArgument.ToString()); 
    } 



    public static string GetBarCodeid(ListBox lbListBox) 
    { 
     string strCode = ""; 
     if (lbListBox.Items.Count > 0) 
     { 
      for (int i = 0; i < lbListBox.Items.Count; i++) 
      { 

       if (lbListBox.Items[i].Selected == true) 
       { 
        if (strCode == "") 
        { 
         strCode = lbListBox.Items[i].Value.ToString(); 
        } 
        else 
        { 
         strCode += "," + lbListBox.Items[i].Value.ToString(); 
        } 

       } 
      } 
     } 
     return strCode; 

    } 

    public static string GetBarCodeName(ListBox lbListBox) 
    { 
     string strBarCodeName = ""; 
     if (lbListBox.Items.Count > 0) 
     { 
      for (int i = 0; i < lbListBox.Items.Count; i++) 
      { 

       if (lbListBox.Items[i].Selected == true) 
       { 
        if (strBarCodeName == "") 
        { 
         strBarCodeName = lbListBox.Items[i].Text.ToString(); 
        } 
        else 
        { 
         strBarCodeName += "," + lbListBox.Items[i].Text.ToString(); 
        } 

       } 
      } 
     } 
     return strBarCodeName; 

    } 
    public static double GetBarCodeCount(ListBox lbListBox, double Count) 
    { 
     double intBarCodeCount = 0; 
     if (lbListBox.Items.Count > 0) 
     { 
      for (int i = 0; i < lbListBox.Items.Count; i++) 
      { 

       if (lbListBox.Items[i].Selected == true) 
       { 
        if (intBarCodeCount == 0) 
        { 
         intBarCodeCount = 1; 
        } 
        else 
        { 
         intBarCodeCount++; 
        } 

       } 
      } 
     } 
     return intBarCodeCount; 

    } 

    public static void SelectListBox(ListBox lbListBox, string strBarCodeId) 
    { 
     ExecuteProcedures ex = new ExecuteProcedures(1, MasterCommonStrings.ConnectionString); 
     ex.Parameters.Add("@vcrBarCodeid", SqlDbType.VarChar, 500, strBarCodeId); 
     DataTable dt = (DataTable)ex.LoadTableWithProcedure("Proc_Erp_Trn_Get_BarCode_Bata"); 
     if (dt.Rows.Count > 0) 
     { 
      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       for (int j = 0; j < lbListBox.Items.Count; j++) 
       { 
        if (dt.Rows[i]["data"].ToString() == lbListBox.Items[j].Value.ToString()) 
        { 
         lbListBox.Items[j].Selected = true; 
         break; 
        } 
       } 
      } 
     } 

    } 
    public static string GetgridBarCode(DataTable dt, string strColumnName) 
    { 
     string strBarCodeCount = ""; 

     if (dt.Rows.Count > 0) 
     { 
      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       if (Convert.ToInt32(dt.Rows[i]["intStatus"]) != 2) 
       { 
        if (dt.Rows[i][strColumnName].ToString() != "") 
         if (strBarCodeCount == "") 
         { 
          strBarCodeCount = dt.Rows[i][strColumnName].ToString(); 
         } 
         else 
         { 
          strBarCodeCount += dt.Rows[i][strColumnName].ToString(); 
         } 
       } 
      } 
     } 
     return strBarCodeCount; 
    } 


    public static DataTable CheckBarCodeExistsOrNot(ListBox lbListbox, string strColumeName, string strReplacegridBarCodeid, DataView dvDescription) 
    { 
     DataTable dtDescription = new DataTable(); 
     dtDescription = (DataTable)dvDescription.Table; 
     string strgridBarCode = CommonFunctions.GetgridBarCode(dtDescription, strColumeName); 
     string strSelectBarCode = CommonFunctions.GetBarCodeid(lbListbox); 
     ExecuteProcedures ex = new ExecuteProcedures(3, MasterCommonStrings.ConnectionString); 
     ex.Parameters.Add("@vcrgridBarcodeid", SqlDbType.VarChar, 500, strgridBarCode); 
     ex.Parameters.Add("@vcrSelectBarcodeid", SqlDbType.VarChar, 500, strSelectBarCode); 
     ex.Parameters.Add("@vcrReplaceBarCodeid", SqlDbType.VarChar, 500, strReplacegridBarCodeid); 
     DataTable dt = (DataTable)ex.LoadTableWithProcedure("Proc_Erp_Trn_Check_BarCode_Exists_Or_Not"); 
     return dt; 



    } 

    public static int BarcodeUpdateIntoBarCodeDrec(string strBarCode_Description_Drec_id, SqlTransaction sqlTran, SqlConnection Con) 
    { 
     ExecuteProcedures ex = new ExecuteProcedures(1, MasterCommonStrings.ConnectionString); 
     ex.Parameters.Add("@intBarCode_Description_Drec_id", SqlDbType.VarChar, 8000, strBarCode_Description_Drec_id); 
     int i = Convert.ToInt32(ex.InvokeProcedure("Proc_Erp_Trn_Update_erp_mst_BarCode_Drec", sqlTran, ValueDataType.Number, Con)); 
     if (i != 0) 
     { 
      return i; 

     } 
     else 
     { 
      return 0; 

     } 


    } 

    public static string AddBarcodeToListBox(TextBox txtScanBarcode, ListBox lbScanBarCode, ListBox lbSystemBarCode) 
    { 
     string barcodePresent = ""; 
     if (txtScanBarcode.Text != "") 
     { 
      foreach (ListItem li in lbSystemBarCode.Items) 
      { 
       if (li.Text != txtScanBarcode.Text) 
       { 
        barcodePresent = "Not In Our System"; 
       } 
       else 
       { 
        if (li.Selected == true) 
        { 
         barcodePresent = "Barcode Already Scan"; 
         txtScanBarcode.Text = ""; 
         txtScanBarcode.Focus(); 
         break; 
        } 
        else 
        { 
         lbScanBarCode.Items.Add(txtScanBarcode.Text); 
         li.Selected = true; 
         txtScanBarcode.Text = ""; 
         txtScanBarcode.Focus(); 
         barcodePresent = "Barcode Scan Successfully"; 
         break; 
        } 

       } 
      } 
      if (barcodePresent == "Not In Our System") 
      { 
       txtScanBarcode.Text = ""; 
       txtScanBarcode.Focus(); 
      } 
     } 
     else 
     { 
      barcodePresent = "Please Scan Barcode"; 
     } 
     return barcodePresent; 

    } 

    public static void RemoveBarCodeFromListBox(ListBox lbScanBarCode, ListBox lbSystemBarCode) 
    { 
     if (lbScanBarCode.Items.Count > 0) 
     { 
      for (int i = 0; i < lbScanBarCode.Items.Count; i++) 
      { 
       if (lbScanBarCode.Items[i].Selected) 
       { 
        foreach (ListItem li1 in lbSystemBarCode.Items) 
        { 
         if (lbScanBarCode.Items[i].Text == li1.Text) 
         { 
          li1.Selected = false; 
          break; 
         } 
        } 
        lbScanBarCode.Items.Remove(lbScanBarCode.Items[i]); 
       } 
      } 
     } 
    } 

    public static void AddBarcodeToGridListBox(ListBox lbBarCode, ListBox lbGridScanBarCodeDisplay) 
    { 
     if (lbBarCode.Items.Count > 0) 
     { 
      for (int i = 0; i < lbBarCode.Items.Count; i++) 
      { 
       if (lbBarCode.Items[i].Selected == true) 
       { 
        lbGridScanBarCodeDisplay.Items.Add(lbBarCode.Items[i].Text); 
       } 
      } 
     } 
    } 


    public static void Alert(string strMessage, System.Web.UI.Page PAGE) 
    { 
     HttpContext Current = HttpContext.Current; 
     string strScript = "<script type=text/javascript>alert('" + strMessage + "')</script>"; 
     if (!PAGE.IsStartupScriptRegistered("Alert")) 
     { 
      PAGE.RegisterStartupScript("Alert", strScript); 
     } 
    } 
    public static int DeletedTotalDrec(DataView dv, string strTableName, string strColumnName, string Value, SqlTransaction SqlTra, SqlConnection Con) 
    { 
     DataTable dtDrec = new DataTable(); 
     dtDrec = (DataTable)dv.Table; 
     int i = 0; 
     if (dtDrec.Rows.Count > 0) 
     { 
      ExecuteProcedures one = new ExecuteProcedures(3, MasterCommonStrings.ConnectionString); 
      one.Parameters.Add("@TableName", SqlDbType.VarChar, 8000, strTableName); 
      one.Parameters.Add("@ColumnName", SqlDbType.VarChar, 8000, strColumnName); 
      one.Parameters.Add("@ColumnValue", SqlDbType.VarChar, 8000, Value); 
      int b = Convert.ToInt32(one.InvokeProcedure("Proc_Erp_Trn_Deleted_Transction_Total_Drec", SqlTra, ValueDataType.Number, Con)); 


      for (int j = 0; j < dtDrec.Rows.Count; j++) 
      { 

       ExecuteProcedures EX = new ExecuteProcedures(19, MasterCommonStrings.ConnectionString); 
       EX.Parameters.Add("@TableName", SqlDbType.VarChar, 8000, strTableName); 
       EX.Parameters.Add("@FirstColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[0].ColumnName.ToString()); 
       EX.Parameters.Add("@SecondColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[1].ColumnName.ToString()); 
       EX.Parameters.Add("@ThiredColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[2].ColumnName.ToString()); 
       EX.Parameters.Add("@FourColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[3].ColumnName.ToString()); 
       EX.Parameters.Add("@FiveColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[4].ColumnName.ToString()); 
       EX.Parameters.Add("@SixtColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[5].ColumnName.ToString()); 
       EX.Parameters.Add("@SevenColumnName", SqlDbType.VarChar, 8000, dtDrec.Columns[6].ColumnName.ToString()); 
       EX.Parameters.Add("@EightColumnName ", SqlDbType.VarChar, 8000, dtDrec.Columns[7].ColumnName.ToString()); 
       EX.Parameters.Add("@NineColumnName", SqlDbType.VarChar, 8000, strColumnName); 
       EX.Parameters.Add("@FirstColumnNameValue ", SqlDbType.VarChar, 8000, dtDrec.Rows[j][0].ToString()); 
       EX.Parameters.Add("@SecondColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][1].ToString()); 
       EX.Parameters.Add("@ThiredColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][2].ToString()); 
       EX.Parameters.Add("@FourColumnNameValue ", SqlDbType.VarChar, 8000, dtDrec.Rows[j][3].ToString()); 
       EX.Parameters.Add("@FiveColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][4].ToString()); 
       EX.Parameters.Add("@SixtColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][5].ToString()); 
       EX.Parameters.Add("@SevenColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][6].ToString()); 
       EX.Parameters.Add("@EightColumnNameValue", SqlDbType.VarChar, 8000, dtDrec.Rows[j][7].ToString()); 
       EX.Parameters.Add("@NineColumnNameValue ", SqlDbType.VarChar, 8000, Value); 



       i = Convert.ToInt32(EX.InvokeProcedure("proc_erp_Trn_Insert_into_Total_Drec", SqlTra, ValueDataType.Number, Con)); 


      } 
     } 
     return i; 
    } 
    public static bool CheckRows(Manage_Drec Description) 
    { 
     if (Description.InTable.Rows.Count > 0) 
     { 
      return true; 

     }else 
     { 
      return false; 
     } 
    } 
    #endregion 

    # region "Procedures" 
    public static void SetRadiobutton(string strStatus, RadioButton Rbyes, RadioButton rbNo) 
    { 
     if (strStatus == "Yes") 
     { 
      Rbyes.Checked = true; 
     } 
     else 
     { 
      Rbyes.Checked = false; 
     } 
     if (strStatus == "No") 
     { 
      rbNo.Checked = true; 
     } 
     else 
     { 
      rbNo.Checked = false; 
     } 
    } 
    public static void Set_CheckBox(bool Status, CheckBox ChkName) 
    { 
     if (Status == true) 
     { 
      ChkName.Checked = true; 
     } 
     else 
     { 
      ChkName.Checked = false; 
     } 

    } 
     public static void DoSomeFileWritingStuff(string message) 
     { 
      //Debug.WriteLine("Writing to file..."); 

      try 
      { 
       using (StreamWriter writer = new StreamWriter(LOG_FILE, true)) 
       { 
        if (message == "") 
        { 
         writer.WriteLine("Cache Callback: {0}", DateTime.Now); 
        } 
        else 
        { 
         writer.WriteLine(message); 
        } 

        writer.Close(); 
       } 
       AspSendEmail smail = new AspSendEmail(); 
       //smail.strHost = mail.intrawebsolns.com 
       smail.SendEmail("[email protected]", "[email protected]", "Exception Error", message, "Error ERP"); 

      } 
      catch (Exception x) 
      { 
       //Debug.WriteLine(x); 
       DoSomeFileWritingStuff(x.Message); 
      } 

      //Debug.WriteLine("File write successful"); 
     } 

    public static void SetRights(string Rights, Panel pnl) 
    { 
     foreach (Control ctrl in pnl.Controls) 
     { 
      if (ctrl.GetType().Name == "Button") 
      { 
       if ((((Button)ctrl).ID == "btnAdd" && Rights.IndexOf("A") > -1) || (((Button)ctrl).ID == "btnEdit" && Rights.IndexOf("E") > -1) 
        || (((Button)ctrl).ID == "btnDelete" && Rights.IndexOf("D") > -1)) 
       { 
        ctrl.Visible = true; 
       } 
       if ((((Button)ctrl).ID == "btnAdd" && Rights.IndexOf("S") > -1) || (((Button)ctrl).ID == "btnEdit" && Rights.IndexOf("S") > -1) 
         || (((Button)ctrl).ID == "btnDelete" && Rights.IndexOf("S") > -1)) 
       { 
        ctrl.Visible = true; 
       } 
      } 

     } 
    } 
    #endregion 

public static void Enable_Btn_For_Add(Button btnAdd, Button btnCancel, Button btnDelete, Button btnEdit, Button btnUpdate, Button btnexit, Button btnfind) 
    { 
     btnEdit.Enabled = false; 
     btnAdd.Enabled = false; 
     btnfind.Enabled = false; 
     btnUpdate.Enabled = true; 
     btnCancel.Enabled = true; 
     btnDelete.Enabled = false; 
     btnexit.Enabled = true; 



    } 


    public static bool Check_Entry_exists(string tableName, string columnName, string columnValue) 
    { 
     bool result=false; 
    try 
    { 
     ExecuteProcedures ex = new ExecuteProcedures(4, AccountCommonStrings.ConnectionString); 
     ex.Parameters.Add("@tableName", SqlDbType.VarChar, 100, tableName); 
     ex.Parameters.Add("@columnName", SqlDbType.VarChar, 100, columnName); 
     ex.Parameters.Add("@columnValue", SqlDbType.VarChar, 100, @columnValue); 
     ex.Parameters.Add("@isbitdeleted", SqlDbType.Int, 0); 
     string temp =Convert.ToString(ex.InvokeProcedure("proc_check_Delete_entry", ValueDataType.String)); 
     if (temp == "false") 
     { 
      result = false; 
     } 
     else 
     { 
      result = true; 
     } 


    } 
    catch (Exception) 
    { 

    } 
    return result; 

    } 

    public static bool Check_Entry_exists(string tableName, string columnName, string columnValue,string isbitdeleted) 
    { 
     bool result = false; 
     try 
     { 
      ExecuteProcedures ex = new ExecuteProcedures(4, AccountCommonStrings.ConnectionString); 
      ex.Parameters.Add("@tableName", SqlDbType.VarChar, 100, tableName); 
      ex.Parameters.Add("@columnName", SqlDbType.VarChar, 100, columnName); 
      ex.Parameters.Add("@columnValue", SqlDbType.VarChar, 100, @columnValue); 
      ex.Parameters.Add("@isbitdeleted", SqlDbType.Int, isbitdeleted); 
      string temp = Convert.ToString(ex.InvokeProcedure("proc_check_Delete_entry", ValueDataType.String)); 
      if (temp == "false") 
      { 
       result = false; 
      } 
      else 
      { 
       result = true; 
      } 


     } 
     catch (Exception) 
     { 

     } 
     return result; 

    } 

} 
+1

Ceci est un grand tas de code sans aucune explication. Pourriez-vous s'il vous plaît expliquer aussi ce qu'il fait? –

+0

Pouvez-vous également formater le code avec l'outil {} en haut de l'éditeur. –