2016-02-04 86 views
0

我在同一頁上有一個窗體和一個GridView。當用戶保存表單時,它會創建一個ID。我需要將ID設置爲HiddenField。然後我需要該GridView的HiddenField。但是,一旦代碼完成表單的保存方法,在HiddenField被重置爲0Hiddenfield丟失值

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate>   
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnSaveMaintenance" /> 
     </Triggers> 
    </asp:UpdatePanel> 

    <tr> 
     <td> 
      <asp:LinkButton ID="btnSaveMaintenance" OnClientClick="return ValidateSaveWithoutPieces()" OnClick="btnSaveMaintenance_Click" runat="server" style="float:left" CssClass="btnSaveSmall" ></asp:LinkButton> 
     </td> 

我把一個更新面板中的保存按鈕,清爽和關閉(通常一次保存停止頁面按鈕被點擊它將關閉表單,但我需要它保持打開狀態)。

在頁面的頂部,我把HiddenField:

<asp:HiddenField ID="hfNewID" runat="server" /> 

然後在btnSaveMaintenance_Click方法我設置HiddenField

protected void btnSaveMaintenance_Click(object sender, EventArgs e) 
{ 
     int tmpParentID = tmpID; 
     if (ParentID.HasValue) 
      tmpParentID = ParentID.Value; 

     Maintenance newMain = new Maintenance 
     { 
      ID = tmpID, 
      Company_ID = Company.Current.CompanyID, 
      VehicleTrailer = tmpType, 
      LinkedID = (long)tmpParentID, 
      DBRowStatus = JobPiece.RowStatus.ToCreate 
     }; 

     main.Add(newMain);; 
     hfNewID.Value = tmpID.ToString(); //set value to hiddenfield 

     if (ParentID.HasValue) 
     { 
      Save(Reg, ParentID.Value); 
      List<Maintenance> Newmain = Maintenance.GetMainteneceItemsByParentID(Company.Current.CompanyID, 
       ParentID.Value, 
       PageType, 
       "Active"); 
      ViewState["Maintenance"] = Newmain; 
      gvMaintenance.DataSource = Newmain; 
      gvMaintenance.DataBind(); 
      udpMain.Update(); 
     } 
} 

的價值,但是當我嘗試調用另一個HiddenField函數保持空白。我如何讓HiddenField保持價值?

+0

回發時丟失的頂部? – Arshad

+2

可能您必須將隱藏的字段放在updatePanel的contentTemplate下,而不是頁面頂部。 – Sandcar

+0

請把隱藏字段放在更新面板中。我希望這會幫助你 –

回答

2

請試試這個: 把你的隱藏字段中輸入您的UpdatePanel裏面的ContentTemplate下,而不是在頁面

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      // you have to put your hidden in this place 
      <asp:HiddenField ID="hfNewID" runat="server" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnSaveMaintenance" /> 
     </Triggers> 
    </asp:UpdatePanel>