Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ajax模式弹出窗口出现两次_C#_Asp.net_Ajax_Gridview_Modalpopupextender - Fatal编程技术网

C# Ajax模式弹出窗口出现两次

C# Ajax模式弹出窗口出现两次,c#,asp.net,ajax,gridview,modalpopupextender,C#,Asp.net,Ajax,Gridview,Modalpopupextender,我在gridview中有一个linkbutton,当我点击该linkbutton时,会出现一个模态弹出窗口。但当我点击时,模式弹出窗口出现两次,下面是我的代码 ASPX: <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"

我在gridview中有一个linkbutton,当我点击该linkbutton时,会出现一个模态弹出窗口。但当我点击时,模式弹出窗口出现两次,下面是我的代码

ASPX:

<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <table>
                <asp:GridView ID="gvAppIssue" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                    ForeColor="#333333" GridLines="Both" OnRowCommand="gvAppIssue_RowCommand"
                    PageSize="100" ShowHeaderWhenEmpty="true" EmptyDataText="No Records Found" EmptyDataRowStyle-Font-Bold="true"
                    EmptyDataRowStyle-HorizontalAlign="Center" CsssClass="contentfont">
                    <Columns> 
                        <asp:TemplateField HeaderText="App ID">
                            <ItemTemplate>
                                <asp:Label ID="lblAppID" runat="server" Text='<%# Eval("ID") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                            
                        <asp:TemplateField HeaderText="App Name">
                            <ItemTemplate>
                                <asp:Label ID="lblAppName" runat="server" Text='<%# Eval("App") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                   
                        <asp:TemplateField HeaderText="Issue" ItemStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <asp:LinkButton ID="lnkbtnIssue" runat="server" ForeColor="Black" 
                                    Text='<%# Eval("App_Iss") %>' CommandName="checkAppIss" />                                    
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    <RowStyle BackColor="White" />
                    <PagerStyle HorizontalAlign="Center" BackColor="#5B95CF" ForeColor="White" />
                    <HeaderStyle BackColor="#5B95CF" Font-Bold="True" ForeColor="White" Width="80%" />
                </asp:GridView>
                <asp:Panel ID="pnlIssue" runat="server" BackColor="Gainsboro" CssClass="contentfont">                        
                <table align="center">
                        <tr>
                            <th valign="middle" colspan="2" align="center" bgcolor="#1E4265" style="font-weight: bold;
                                font-size: medium; font-family: Arial; color:white;">
                                Issue Details
                                <asp:ImageButton ID="btnWarning" runat="server" ImageUrl="Images/Close.PNG" ImageAlign="Right"
                                    Height="20px" Width="20px" />
                            </th>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="App ID" Font-Bold="true"></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblAppID" runat="server"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label runat="server" Text="AppName" Font-Bold="true"></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblAppName" runat="server"></asp:Label>
                            </td>
                        </tr>                         
                    </table>
                </asp:Panel>
                <asp:HiddenField ID="hfpop" runat="server"  />
                <cc1:ModalPopupExtender ID="popup" CancelControlID="btnWarning" runat="server" PopupControlID="pnlIssue"
                    TargetControlID="hfpop" >
                </cc1:ModalPopupExtender>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
protected void gvAppIssue_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            if (e.CommandName == "checkAppIss")
            {
                 GridViewRow gvRow = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;
                 string strID = ((Label)gvRow.FindControl("lblAppID")).Text;
                 if(strID == "Yes")
                 {
                    int appID = "1";
                    ShowPopup(appID);
                 }   
             }
         }
     }    
根据strID值,我需要检查表中的某些行,然后在
ShowPopup
方法中将值填充到标签中

public void ShowPopup(int appID)
    {
        DataTable dtGetID = AppData.GetID(appID);
        if (dtGetID.Rows.Count > 0)
        {
            lblAppID.Text = dtGetID.Rows[0]["Id"].ToString();
            lblAppName.Text = dtGetID.Rows[0]["Name"].ToString();               
            popup.Show();
        }
    }
现在我能够在标签中获得正确的值,唯一的问题是弹出窗口出现两次。一个弹出窗口有完整的值,它是完美的,另一个只有第一个td值,而不是showpopup方法中的标签。所以我必须关闭一个弹出窗口,才能看到另一个完美的模态


有人能建议或帮助我解决这个问题吗?

这可能是因为回发问题。也许可以尝试将“pnlIssue”、modul popup extender和hidden字段放置在gridView更新面板之外以及它们自己的更新面板中,在面板的更新面板上设置UpdateMode=“Conditional”,并在show popup中调用updatepanelName.update

例如


@HeinrichJNel-我有一个类似的问题,你有没有办法帮我解决这个问题@迈克尔-不幸的是,你的问题被搁置,所以我无法回答。阿塔努·罗伊提供的答案是准确的。也许您可以建立一个得到满足的值列表,并将该列表传递给popup方法,然后在(单个)popup中迭代显示每个值的项?模块弹出窗口不能像消息框或javascript警报那样连续显示多次。它本质上类似于说popup.visible=true。只有最后一个将实际渲染客户端。
<asp:UpdatePanel ID="upPopup" ChildrenAsTriggers="false" RenderMode="Inline" UpdateMode="Conditional" runat="server">
<ContentTemplate>
    <asp:Panel ID="pnlIssue" runat="server" BackColor="Gainsboro" CssClass="contentfont">                        
            <table align="center">
                    <tr>
                        <th valign="middle" colspan="2" align="center" bgcolor="#1E4265" style="font-weight: bold;
                            font-size: medium; font-family: Arial; color:white;">
                            Issue Details
                            <asp:ImageButton ID="btnWarning" runat="server" ImageUrl="Images/Close.PNG" ImageAlign="Right"
                                Height="20px" Width="20px" />
                        </th>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label runat="server" Text="App ID" Font-Bold="true"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="lblAppID" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label runat="server" Text="AppName" Font-Bold="true"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="lblAppName" runat="server"></asp:Label>
                        </td>
                    </tr>                         
                </table>
            </asp:Panel>
            <asp:HiddenField ID="hfpop" runat="server"  />
            <cc1:ModalPopupExtender ID="popup" CancelControlID="btnWarning" runat="server" PopupControlID="pnlIssue"
                TargetControlID="hfpop" >
            </cc1:ModalPopupExtender>
</ContentPanel>
</UpdatePanel>
public void ShowPopup(int appID)
{
    DataTable dtGetID = AppData.GetID(appID);
    if (dtGetID.Rows.Count > 0)
    {
        lblAppID.Text = dtGetID.Rows[0]["Id"].ToString();
        lblAppName.Text = dtGetID.Rows[0]["Name"].ToString();               
        popup.Show();
        upPopup.Update();
    }
}