1) use some syntax highlighter to post your code (like pastebin.com)
2) you are using DataGridView. If you store and update your data inside your
DataTable you can simply setup DataGridView to has its data soruce as the
DataTable...

2009/10/8 David Kwan <[email protected]>

>
> Hi,
>
> I am facing a strange behavior which I am not able to find the
> solution.
>
> I have a Gridview to show data from my database and after click on
> Edit, I will allow certain fields to be modified.
>
> However, when I click Update, some of the fields not able to accept
> the new value and some field are taking new values + old values, thus
> making it wrong.
>
> Let's say, my txtComments original data is empty string.
> Now, I click Edit, and Update without modifying the data in
> txtComments, I will get ",,"
> Then I click Edit again and Update without modifying the data in
> txtComments, I will get  ",,,,,,,,"
>
> Let's say, my txtComments original data is "123"
> Now, I click Edit, and Update without replace the data in txtComments
> to 456, I will get 456,123,123
>
> Other than that I am not able to read new value for txtOverrideMin,
> txtOverrideMin, txtOverrideMax
>
> It is pretty strange and I try to debug it and see where the values
> are from, some how no avail.
>
> Here are some of my codes, I hope you can spot where it goes wrong.
>
> Thanks for any assistance.
>
>
> protected void gvList_RowCancelingEdit(object sender,
> GridViewCancelEditEventArgs e)
>    {
>        gvList.EditIndex = -1;
>        gvList.DataSource = GetData(this.DataContext);
>        gvList.DataBind();
>    }
>
>    protected void gvList_RowEditing(object sender,
> GridViewEditEventArgs e)
>    {
>        gvList.EditIndex = e.NewEditIndex;
>        PopulateFilters(this.DataContext);
>        gvList.DataSource = GetData(this.DataContext);
>        gvList.DataBind();
>    }
>
>    protected void gvList_RowUpdating(object sender,
> GridViewUpdateEventArgs e)
>    {
>        TextBox txtOverride = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtOverride");
>        TextBox txtOverrideMin = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtOverrideMin");
>        TextBox txtOverrideMax = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtOverrideMax");
>        TextBox txtComments = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtComments");
>        TextBox txtDistyModel = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtDistyModel");
>        TextBox txtcustomer = (TextBox)gvList.Rows
> [e.RowIndex].FindControl("txtcustomer");
>        TextBox txtOPN = (TextBox)gvList.Rows[e.RowIndex].FindControl
> ("txtopn");
>
>        Int32.TryParse(txtOverride.Text, out Qty_override);
>        Int32.TryParse(txtOverrideMin.Text, out Qty_override_min);
>        Int32.TryParse(txtOverrideMax.Text, out Qty_override_max);
>
>        comments = txtComments.Text;
>
>        customer = txtcustomer.Text;
>        opn = txtOPN.Text;
>        distymodel = txtDistyModel.Text;
>
>        try
>        {
>            DataAccess.EditCustomerBuffer(
>              "Edit",
>              distymodel,
>              customer,
>              opn,
>              Qty_override,
>              Qty_override_min,
>              Qty_override_max,
>              comments);
>
>            gvList.EditIndex = -1;
>            gvList.DataSource = GetData(this.DataContext);
>            gvList.DataBind();
>        }
>        catch (Exception ex)
>        {
>            error = getErrorMessage(ex.Message);
>
>            ScriptManager.RegisterClientScriptBlock(
>            this,
>            this.GetType(),
>            "ERROR:Edit",
>            "alert('" + error + "');",
>            true);
>        }
>    }
>
>
>    protected void gvList_RowDeleting(object sender,
> GridViewDeleteEventArgs e)
>    {
>        Label lbldistymodel = (Label)gvList.Rows
> [e.RowIndex].FindControl("lbldistymodel");
>        Label lblOPN = (Label)gvList.Rows[e.RowIndex].FindControl
> ("lblOPN");
>        Label lblcustomer = (Label)gvList.Rows[e.RowIndex].FindControl
> ("lblcustomer");
>        opn = lblOPN.Text;
>        customer = lblcustomer.Text;
>        distymodel = lbldistymodel.Text;
>
>        try
>        {
>            DataAccess.DeleteCustBuffer(distymodel, customer, opn);
>            gvList.DataSource = GetData(this.DataContext);
>            gvList.DataBind();
>        }
>        catch (Exception ex)
>        {
>            error = getErrorMessage(ex.Message);
>
>            ClientScript.RegisterStartupScript(this.GetType(),
> "ERROR:Remove", "<script>alert('" + error + "');</script>");
>        }
>    }
>
>
> ----------------------------------------------------------------------------------------------------------------------
>
>     <table id="tbGridView" border="0" width="100%" cellpadding="0"
> cellspacing="0">
>            <tr>
>                <td>
>                    <div id="divGridView" style="width: 100%;
> overflow: auto;">
>                        <asp:GridView ID="gvList" runat="server"
>                            CssClass="scrolltable" SkinID="gvList"
>                            AutoGenerateColumns="false"
> CellPadding="2"
>
> OnRowEditing="gvList_RowEditing"
>
> OnRowCancelingEdit="gvList_RowCancelingEdit"
>                            OnRowUpdating="gvList_RowUpdating"
>                            OnRowDeleting="gvList_RowDeleting">
>                <Columns>
>                  <asp:TemplateField HeaderStyle-
> HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" ItemStyle-
> Wrap="false">
>                    <HeaderTemplate>Actions</HeaderTemplate>
>                    <ItemTemplate>
>                      <asp:LinkButton ID="lbtnEdit" CssClass="Text7"
> runat="server" CommandName="Edit" Text="Edit"/>
>                      <span> | </span>
>                      <asp:LinkButton ID="lbtnDelete" CssClass="Text7"
> runat="server" CommandName="Delete" Text="Delete"
>                        OnClientClick="javascript:return confirm('Are
> you sure you want to delete?');" />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                      <asp:LinkButton ID="lbtnUpdate" CssClass="Text7"
> runat="server" CommandName="Update" Text="Update"/>
>                      <span> | </span>
>                      <asp:LinkButton ID="lbtnCancel" CssClass="Text7"
> runat="server" CommandName="Cancel" Text="Cancel"
> OnClientClick="aspnetForm.reset()" />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Disty Model">
>                    <ItemTemplate>
>                      <asp:Label ID="lbldistymodel" Runat="server"
> Text='<%# Bind("Disty_Model_Name") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                        <asp:TextBox ID="txtDistyModel" runat="server"
> ReadOnly="true" Text='<%# Bind("Disty_Model_Name") %>' />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Customer">
>                    <ItemTemplate>
>                      <asp:Label ID="lblcustomer" Runat="server"
> Text='<%# Eval("Customer_Name") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                        <asp:TextBox ID="txtcustomer" runat="server"
> ReadOnly="true" Text='<%# Bind("Customer_Name") %>' />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="OPN">
>                    <ItemTemplate>
>                      <asp:Label ID="lblOPN" Runat="server" Text='<%#
> Bind("OPN") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                        <asp:TextBox ID="txtOPN" runat="server"
> ReadOnly="true" Text='<%# Bind("OPN") %>' />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Override">
>                    <ItemTemplate>
>                      <asp:Label ID="lblOverride" Runat="server"
> Text='<%# Bind("Override") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                      <asp:TextBox SkinID="txt" Width="50px"
> ID="txtOverride" runat="server" Text='<%# Bind("Override") %>'/
> >
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Min">
>                    <ItemTemplate>
>                      <asp:Label ID="lblOverrideMin" Runat="server"
> Text='<%# Bind("Override_Min") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                      <asp:TextBox SkinID="txt" Width="50px"
> ID="txtOverrideMin" runat="server" />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Max">
>                    <ItemTemplate>
>                      <asp:Label ID="lblOverrideMax" Runat="server"
> Text='<%# Bind("Override_Max") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                      <asp:TextBox SkinID="txt" Width="50px"
> ID="txtOverrideMax" runat="server" />
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>
>                  <asp:TemplateField HeaderText="Comments">
>                    <ItemTemplate>
>                      <asp:Label ID="lblComments" Runat="server"
> Text='<%# Bind("Comments") %>' />
>                    </ItemTemplate>
>                    <EditItemTemplate>
>                      <asp:TextBox SkinID="txt" Width="500px"
> ID="txtComments" runat="server"  Text='<%# Eval("Comments") %>'/>
>                    </EditItemTemplate>
>                  </asp:TemplateField>
>                </Columns>
>                        </asp:GridView>
>                    </div>
>                </td>
>            </tr>
>        </table>
>

Reply via email to