2009-08-26 92 views
0

在此先感謝您的幫助。Multiview - 查看清除狀態

我正在使用c#.net。

我有我的網頁(包含一個多視圖內)兩種觀點,都包含按鈕。

view_1

包含一個轉發器/數據源和由「編輯」按鈕的自定義(其保持爲每一行返回的ID)。

view_2

包含「更新」表單和「更新」按鈕。當用戶按下更新按鈕時,針對該特定行的數據庫內的信息被更新。

我認爲問題在於我的 '更新' 按鈕內view_2

後面的代碼( '更新' 按鈕),我有一個if語句:

 protected void Page_Load(object sender, EventArgs e) 
    { 
     updateSuccessFailed.Visible = false; 

     if (!Page.IsPostBack) 
     { 
      _multiView1.ActiveViewIndex = 0; 
     } 
    } 

protected void update_Click(object sender, EventArgs e) 

{

var Id = Convert.ToInt32((ID.Value)); 

    notYetUpdated.Visible = true; 
    updateSuccessFailed.Visible = false; 

    tblV updateV = new tblV(); 

     updateV.vID = venueId; 
     updateV.vame = updateName.ToString(); 
     updateV.vPostcode = updatePropPostcode.ToString(); 

     if (vRepos.Update(updateV)) 
     { 
      notYetUpdated.Visible = false; 
      updateSuccessFailed.Visible = true; 
      updateMessage.Text = "Updated."; 
     } 
     else 
     { 
      notYetUpdated.Visible = false; 
      updateSuccessFailed.Visible = true; 
      updateMessage.Text = "An error has occurred, please try again."; 
     } 
} 

_view2

<asp:View ID="_view2" runat="server">  
    <div style="text-align:center" runat="server" id="notYetUpdated"> 
     <table border="0" cellspacing="1"> 
     <tr> 
      <td style="text-align:left;">Name</td> 
      <td style="text-align:left;"><asp:TextBox ID="updateName" MaxLength="60" runat="server" /></td> 
     </tr> 
     <tr> 
      <td style="text-align:left;">Postcode</td> 
      <td style="text-align:left;"><asp:TextBox ID="updatePropPostcode" MaxLength="60" runat="server" /></td>   
     </tr>   
     </table><br />    

     <asp:Button ID="updateVCancel" Text="Cancel" runat="server" onclick="cancel_Click" CssClass="standardButton" /> 
     <asp:Button ID="updateVConfirm" Text="Update" runat="server" onclick="update_Click" CssClass="standardButton" /> 
     <asp:HiddenField ID="vUpdateID" runat="server" />  
    </div> 

    <div style="text-align:center" runat="server" id="updateSuccessFailed"> 
     <p><asp:Label ID="updateMessage" runat="server" /></p> 
     <asp:Button ID="updateBack" Text="Back To Start" runat="server" onclick="backToStart_Click" CssClass="standardButton" /> 
    </div> 

    </asp:View> 

notYetUpdated/updateSuccessFailed是持有不同信息的div。

當用戶第一次「更新」記錄它做出正確的div可見。 (notYetUpdated - 保存表單信息/ updateSuccessFailed - 保存一條消息以指明記錄是否已更新)。但是,當您再次訪問view_2時,它會訪問update_Click事件,並且updateSuccessFailed即使不應該也是可見的。

我以爲我可以清除與下面的代碼viewstates內的所有存儲的信息,但是這是行不通的。

ViewState.Clear(); 
    ClearChildViewState(); 

由於

克萊爾:-)

回答

0

這是我的錯誤。我改編了我的代碼,這裏是:

var Id = Convert.ToInt32((ID.Value)); 

tblV updateV = new tblV();   
updateV.vID = venueId;   
updateV.vame = updateName.ToString();   
updateV.vPostcode = updatePropPostcode.ToString(); 

notYetUpdated.Visible = false;  
updateSuccessFailed.Visible = true; 

if (vRepos.Update(updateV))   
{     
updateMessage.Text = "Updated.";   
}   
else   
{  
updateMessage.Text = "An error has occurred, please try again.";   
} 

希望這有助於其他人。

0

第四行應updateSuccessFail ED。可見=假;?

+0

抱歉誤讀了您的信息。這是寫回這個問題時的回購。 Withih我的代碼是一個失敗** ed **。 – ClareBear 2009-08-26 14:16:02

+0

克萊爾,如果我明白了這個問題,我認爲你應該update_Click函數設置updateSuccessFailed.Visible爲false。例如,在Page_Load – riotera 2009-08-26 14:29:13

+0

中,我在Page_Load中添加了updateSuccessFailed.Visible = false,但是第二次用戶輸入view_2時不顯示任何內容。它可以是因爲按鈕被按下了某種方式被緩存? – ClareBear 2009-08-26 14:38:07