Панель обновления не обновляется

У меня есть кнопка внутри поля шаблона gridview. При нажатии кнопки я хочу, чтобы кнопка открывала модальное всплывающее окно, при этом принудительно обновляя панель обновления и вид формы внутри модального всплывающего окна, потому что источник данных вида формы зависит от скрытого поля, в котором я также устанавливаю после щелчка.

Это то, что у меня есть до сих пор.

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>

person Eric    schedule 20.10.2009    source источник


Ответы (1)


Ваш FormView в вашем модальном окне называется FormView2, однако ваш код Databinds FormView3. Не могли бы вы случайно привязать неправильный FormView

person Josh Mein    schedule 20.10.2009
comment
Ты прав. Я исправил это. однако у меня все еще та же проблема. - person Eric; 21.10.2009
comment
Я настоятельно рекомендую осмысленные имена для ваших элементов управления, это поможет избежать подобных ситуаций. Просто добавьте префикс, такой как upl_ для ваших UpdatePanels и fmv_ для ваших форм, а затем добавьте то, для чего они нужны в конце переменной. - person Josh Mein; 21.10.2009
comment
Является ли UpdatePanel3 внутри FormView1? Я не могу сказать из кода, который вы показали - person Josh Mein; 21.10.2009
comment
@Jmein Да, это внутри Formview1. И вы - читабельность очень важна. Однако время не позволило этого для этого проекта. - person Eric; 21.10.2009
comment
Это представление формы завернуто в панель обновления. Когда я завернул его в панель обновлений, я начал получать эту ошибку. - person Eric; 21.10.2009
comment
Я понимаю, но мысли о хороших именах переменных могут улучшить не только читабельность, но и избежать трудоемких ошибок, связанных с размещением неправильных имен переменных и необходимостью сортировки во всем этом. - person Josh Mein; 21.10.2009
comment
@Jmein. Спасибо. Я понял свою проблему. Ха-ха, и это точно, потому что я перепутал имена переменных. Я должен стать лучше в этом. Урок выучен. Благодарю. - person Eric; 21.10.2009
comment
Добро пожаловать. Всегда стоит потратить дополнительные пару минут, чтобы придумать хорошие имена переменных. ;) - person Josh Mein; 21.10.2009