这是在页面的代码:1
动态加载控件疑惑。。。。string IDX ="";
动态加载控件疑惑。。。。                    IDX 
= Request.QueryString["IDX"];
动态加载控件疑惑。。。。                    c_EditItem 
= (EditItem)Page.LoadControl("ProductBarcodeControls/EditItem.ascx");
动态加载控件疑惑。。。。                    
动态加载控件疑惑。。。。                        c_EditItem.PK_ID 
= IDX;
动态加载控件疑惑。。。。                    
动态加载控件疑惑。。。。                    
this.Web_contaner.Controls.Add(c_EditItem);
动态加载控件疑惑。。。。                    c_EditItem.setRunningType(ActionType.UpdatedBarcodeItem);

这里是用户控件中runingType的代码 2
动态加载控件疑惑。。。。public void setRunningType(string rtype)
{
动态加载控件疑惑。。。。            
动态加载控件疑惑。。。。            
switch(rtype)
{
动态加载控件疑惑。。。。                
动态加载控件疑惑。。。。                case ActionType.UpdatedBarcodeItem:
动态加载控件疑惑。。。。                    SetLableToText();
动态加载控件疑惑。。。。                    code_txt.EditEnable 
= false;
动态加载控件疑惑。。。。                    Action_pal.Visible 
= true;
动态加载控件疑惑。。。。                    add_btn.Visible 
= false;
动态加载控件疑惑。。。。                 
    this.BindList();
动态加载控件疑惑。。。。                    
break;
动态加载控件疑惑。。。。                
case ActionType.ViewBarcodeItem:
动态加载控件疑惑。。。。                    Action_pal.Visible 
= false;
动态加载控件疑惑。。。。                    
this.BindList();
动态加载控件疑惑。。。。                    
break;
动态加载控件疑惑。。。。            }

动态加载控件疑惑。。。。        }


这里是梆定数据的代码 3
动态加载控件疑惑。。。。    DataRow Row =  this.myCode.getBarcodeByIDX(this.PK_ID);
动态加载控件疑惑。。。。                code_txt.Text               
=   Row[BarcodeData.Code_FIELD].ToString();
动态加载控件疑惑。。。。                partNo_txt.Text                
=   Row[BarcodeData.PartNo_FIELD].ToString();
动态加载控件疑惑。。。。                UpdatePartNO_txt.Text        
=   Row[BarcodeData.NewPartNo_FIELD].ToString();
动态加载控件疑惑。。。。                StandardPartNO_txt.Text        
=   Row[BarcodeData.StandPartNO_FIELD].ToString();
动态加载控件疑惑。。。。                Customer_txt.Text            
=   Row[BarcodeData.Customer_FIELD].ToString();
动态加载控件疑惑。。。。                status_rdb.SelectedValue    
=   Row[BarcodeData.Status_FIELD].ToString().Trim().ToLower();
动态加载控件疑惑。。。。                remark_txt.Text                
=   Row[BarcodeData.Remark_FIELD].ToString();
动态加载控件疑惑。。。。
动态加载控件疑惑。。。。                LabelType_txt.Text            
=   Row[BarcodeData.LabelType_FIELD].ToString();
动态加载控件疑惑。。。。                LableDescritiop_txt.Text    
=   Row[BarcodeData.LabelDescription_FIELD].ToString();
动态加载控件疑惑。。。。                Description_txt.Text        
=   Row[BarcodeData.Description_FIELD].ToString();
动态加载控件疑惑。。。。                UpdateDesc_txt.Text            
=   Row[BarcodeData.NewDescription_FIELD].ToString();

这里是按下update后更新的代码 4
动态加载控件疑惑。。。。DataRow Row =  this.myCode.getBarcodeByIDX(this.PK_ID);
动态加载控件疑惑。。。。                Row[BarcodeData.PartNo_FIELD]        
=    partNo_txt.Text.Trim();        
动态加载控件疑惑。。。。                Row[BarcodeData.NewPartNo_FIELD]    
=    UpdatePartNO_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.StandPartNO_FIELD]    
=    StandardPartNO_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.Customer_FIELD]        
=    Customer_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.Status_FIELD]        
=    status_rdb.SelectedValue;
动态加载控件疑惑。。。。                Row[BarcodeData.Remark_FIELD]        
=    remark_txt.Text.Trim();
动态加载控件疑惑。。。。
动态加载控件疑惑。。。。                Row[BarcodeData.LabelType_FIELD]    
=    LabelType_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.LabelDescription_FIELD] 
= LableDescritiop_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.Description_FIELD]    
=    Description_txt.Text.Trim();
动态加载控件疑惑。。。。                Row[BarcodeData.NewDescription_FIELD] 
= UpdateDesc_txt.Text.Trim();
动态加载控件疑惑。。。。
动态加载控件疑惑。。。。                Row[BarcodeData.LastModify_FIELD]    
= System.DateTime.Now;
动态加载控件疑惑。。。。
动态加载控件疑惑。。。。                Row.AcceptChanges();

我点击update按钮更新数据的顺序通过跟踪是
1-2-3-4
这里有个逻辑错误:
即 第3步不该执行。
按照我的想法,
数据不会被更新,因为在3步的时候重新绑定了数据。
可是结果相反,数据得到更新。
正常的逻辑应该是
1-2-4

虽然我不知道微软怎么样处理的,我按照正确的逻辑重写了2步
动态加载控件疑惑。。。。case ActionType.UpdatedBarcodeItem:
动态加载控件疑惑。。。。                    SetLableToText();
动态加载控件疑惑。。。。                    code_txt.EditEnable 
= false;
动态加载控件疑惑。。。。                    Action_pal.Visible 
= true;
动态加载控件疑惑。。。。                    add_btn.Visible 
= false;
动态加载控件疑惑。。。。                    
if(!IsPostBack)
动态加载控件疑惑。。。。                        
this.BindList();
动态加载控件疑惑。。。。                    
break;
表示在post时候,不在page load的时候重新绑定数据

相关文章: