【问题标题】:Update panel doesn't seem to update更新面板似乎没有更新
【发布时间】:2009-10-20 20:02:32
【问题描述】:

我在 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>

【问题讨论】:

    标签: c# asp.net vb.net visual-studio modalpopupextender


    【解决方案1】:

    您的模式中的 FormView 被命名为 FormView2,但是您的代码 Databinds FormView3。 你会不会碰巧绑定了错误的 FormView

    【讨论】:

    • 你是对的。我修好了。但是我仍然遇到同样的问题。
    • 我强烈建议为您的控件命名有意义的名称,这样可以更轻松地避免这些类型的情况。只需为您的 UpdatePanels 添加一个前缀,例如 upl_ ,为您的表单视图添加 fmv_ ,然后在变量末尾添加它们的用途
    • UpdatePanel3 在 FormView1 内吗?我无法从您显示的代码中看出
    • @Jmein 是的,它在 Formview1 内部。而你 - 可读性非常重要。不过,时间不允许这个项目。
    • 该表单视图包含在更新面板中。当我将它包装在更新面板中时,这就是我开始收到此错误的时候。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 2012-04-23
    • 2019-10-03
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多