2009-10-20 130 views
1

我在gridview的模板字段中有一個按鈕。 Onclick我想要按鈕來打開模式彈出窗口,同時強制更新模式彈出窗口內的updatepanel和formview,因爲formview的數據源取決於隱藏字段,我在點擊後也設置了該字段。更新面板似乎沒有更新

這就是我到目前爲止。

protected void bttnEdit_Click2(object sender, ImageClickEventArgs e) 
{ 
    ImageButton bttnEdit = (ImageButton)sender; 

    HiddenField HiddenField1 = (HiddenField)FormView1.FindControl("HiddenField1"); 
    HiddenField1.Value = bttnEdit.CommandArgument; 

    UpdatePanel UpdatePanel3 = (UpdatePanel)FormView1.FindControl("UpdatePanel3"); 


    AjaxControlToolkit.ModalPopupExtender ModalPopupExtender1 = (AjaxControlToolkit.ModalPopupExtender)FormView1.FindControl("ModalPopupExtender1"); 
    ModalPopupExtender1.Show(); 
    FormView3.DataBind(); 
    UpdatePanel3.Update(); 

} 

我看到彈出窗口,但沒有任何內部負載。我究竟做錯了什麼?

<asp:TemplateField ShowHeader="False"> 
    <EditItemTemplate> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:UpdatePanel ID="UpdatePanel21" runat="server"> 
      <ContentTemplate> 
       <asp:ImageButton ID="bttnEdit" CommandArgument = '<%# Eval("Id") %>' runat="server" OnClick ="bttnEdit_Click2" injid='<%# Eval("Id") %>' causeid='<%# Eval("C_Type") %>' natureid='<%# Eval("n_type") %>' CausesValidation="False" ImageUrl="~/images/bttnEdit.gif" Text="Edit" OnClientClick ="loadmodal(this.injid,this.causeid,this.natureid);" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     &nbsp;<asp:ImageButton ID="ImageButton2" runat="server" CausesValidation="False" CommandName="Delete" ImageUrl="~/images/bttnDelete.gif" Text="Delete" /> 
    </ItemTemplate> 

<asp:Panel ID = "Pnlmodal" runat ="server" style="background-color:White; padding:1em 6px;"> 
    <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode ="Conditional" ChildrenAsTriggers ="true" > 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID ="Button1" EventName ="Click" /> 
     </Triggers> 
    <ContentTemplate> 
     <asp:FormView ID="FormView2" runat="server" DefaultMode ="Edit" DataSourceID ="SqlDataSource8"> 
      <EditItemTemplate> 
       <table> 
        <tr> 
         <td colspan="2" align="center" style="color:Blue;font-size:large">Edit Injury</td> 
        </tr> 
        <tr> 
         <td align="right" ><strong>What event caused the injury </strong></td>     
         <td align="left">                            <asp:UpdatePanel ID="UpdatePanel14" runat="server"> 
           <ContentTemplate> 
            ////stuff 
           </ContentTemplate> 
          </UpdatePanel> 

回答

0

你在你的模式FormView控件被命名爲FormView2但是你的代碼Databinds FormView3。 你能不能綁定錯誤的FormView

+0

你說得對。我修正了這一點。但是我仍然有同樣的問題。 – Eric 2009-10-20 20:20:14

+0

我強烈建議您的控件使用有意義的名稱,這樣可以更輕鬆地避免這些類型的情況。只需爲您的UpdatePanels添加一個前綴,如upl_,然後爲您的formviews添加fmv_,然後在變量末尾添加它們的內容 – 2009-10-20 20:23:12

+0

FormView1中是UpdatePanel3?我無法從您顯示的代碼中看出 – 2009-10-20 20:24:47