在一个页面中使用相同的用户控件和模态弹出扩展器两次

时间:2015-02-25 07:02:19

标签: javascript asp.net user-controls updatepanel modalpopupextender

我有一个用户控件,我在其中使用一个用户控件两次。用户控件是模态弹出扩展器和带有​​gridview的搜索面板,具有选择按钮。当我单击选择按钮时,应该关闭用户控件。为此,我正在编写foll代码

protected void gvSearchResults_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            User usr = e.Row.DataItem as User;
            if (usr != null)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("document.getElementById('" + txtEmpId.ClientID + "').value = '" + usr.EmployeeId + "';");
                sb.Append("document.getElementById('" + txtEmpName.ClientID + "').value = '" + usr.FirstName + " " + usr.LastName + "';");
                sb.Append("$find('"+ ModalPopupExtender1.BehaviorID+"').hide();document.getElementById('" + txtEmployeeID.ClientID + "').value = '';document.getElementById('" + txtUserName.ClientID + "').value='';");

                LinkButton lnkSelect = e.Row.Cells[0].Controls[0] as LinkButton;
                lnkSelect.OnClientClick = sb.ToString();
                lnkSelect.Text = SelectString;
                e.Row.DataBind();
            }
        }
    }

在父页面中,我正在调用这样的用户控件

<asp:TableCell>
                <asp:Label CssClass="editorLabel" ID="lblInstalledBy" runat="server" Text="Installed By:"></asp:Label>
            </asp:TableCell>
            <asp:TableCell>
                <CustomCTRL:CTRLSelectUser Width="155" ID="SelectUserInstBy" runat="server">
                </CustomCTRL:CTRLSelectUser>
            </asp:TableCell>
            <asp:TableCell />
            <asp:TableCell>
                <asp:Label CssClass="editorLabel" ID="lblOwner" runat="server" Text="Owner:"></asp:Label>
            </asp:TableCell>
            <asp:TableCell>
                <CustomCTRL:CTRLSelectUser Width="155" ID="CTRLSelectUserOwner" runat="server">
                </CustomCTRL:CTRLSelectUser>
            </asp:TableCell>

现在的问题是,这个功能正常,第二次使用,在父页面中第一次使用时,用户控件不会隐藏。

更多信息:父控件位于更新面板中,子控件也位于更新面板中,两者都具有UpdateMode = conditional

希望我的问题很明确!需要帮忙!在此先感谢..已经花了几天时间来解决这个问题,但没有找到任何东西

1 个答案:

答案 0 :(得分:0)

如果你决定通过代码隐藏文件用JS隐藏模态,你可以这样做: 第1步,在.aspx页面中创建一个JS函数,如下所示:

function HideModal() 
{
   $find("modalID").hide(); 
}

然后在你的代码中,运行你想要的事件的函数:

ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:hideModal();", true);