2011-05-09 2 views
1

데이터를 수동으로 바인딩하는 gridview 컨트롤이 있습니다. 행을 편집하고 업데이트 할 때 보낸 텍스트 상자의 값은 항상 이전 값입니다. 이 스레드를 발견했지만 새로운 값을 추출하지 못했습니다.Gridview_RowEditing 빈 값

<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 

또한 ExtractValuesFromCell 코드는 새로운 데이터를 가져 오는 가장 최근의 시도임을 지적하고자합니다. 그 전에는 내가 여기 또한이

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

같은 것을 사용하고 그렇지 않으면 새 값이 덮어 씁니다, 데이터가 당신은 당신의 GridView 경우에만 Not Page.IsPostback을 데이터 바인딩해야

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 

답변

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

설명 이물 감사합니다. 그것이 무엇을 설명해 주시겠습니까? –

+0

편집기의 맨 위에있는 {} 도구로 코드의 형식을 지정하십시오. –

관련 문제